LearnByLearn📖 – Telegram
LearnByLearn📖
568 subscribers
44 photos
9 videos
5 files
69 links
Download Telegram
LearnByLearn📖
کدوم رو استارت بزنیم ؟؟؟
قراره کامل و مفصل بهشون پرداخته بشه
🤔 همزمانی(Synchronous ) و ناهمزمانی(Asynchronous) چیه ؟
🤔 اومده چه مشکلی رو حل کنه ؟
🤔 میکروتسک چیه و فرقش با Callback Queue ؟
🤔 اصلا چطور کار میکنن ؟
🤔 چه موقع و کجا باید ازشون استفاده کنیم ؟
🤔 عملیات Async پس قضیه چطور هندل میشن ؟

تا جایی که تونستم به صورت ساده توصیح دادم

لینک مقاله 👈🏻 لینک

@LearnByLearn

#concept
#javanoscript
#async
👍5
♻️ آموزش نصب Node.js از طریق NVM

👈🏻 اگه بخوایید Node.js رو به صورت عادی از طریق خود سایت نود، روی لینوکس(یا WSL) نصب کنید ممکنه یه خرده دردسر داشته باشه 🥵

👈🏻 اما یکی از بهترین راه های نصب Node.js ، نصب از طریق NVM یا همون Node Version Management هستش 😉

👈🏻 با این روش شما خیلی راحت هر نوع ورژنی رو به راحتی نصب یا حذف میکنید یا میتونید چندین ورژن رو کنار هم داشته باشید و راحت بین اون ها سویچ کنید 😏

خب بریم سراغ آموزش:

👈🏻 از طریق کامند زیر میتونید NVM رو نصب کنید:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash


☝🏻دقت کنید که قبلش باید curl رو سیستم لینوکسی تون نصب باشه پس اگه نداریش با دستور زیر نصبش کن
sudo apt install curl


👈🏻 حالا باید کارهای Environment Variable و Load کردنش رو اوکی کنید، فقط کافیه دستور زیر رو توی ترمینال کپی کنید و اینتر رو بزنید و بعد یک دور ترمینال رو باز و بسته کنید
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm


تبریک میگم 🥳 حالا NVM رو سیستم عاملت نصب کردی
برای اطمینان از نصبش این دستور رو بزن
nvm --version


👈🏻 حالا برای نصب نود ما دو راه داریم یا ورژن LTS و نصب کنیم یا ورژن Current
فرقشون چیه؟ ورژن LTS ساپورت طولانی مدت داره و stable تر هست در حالی که ورژن current آخرین ورژن نود هستش که خب به نظر من ورژن LTS بهتره
چون ممکنه از آخرین ورژن استفاده میکنید Breaking Change داشته باشه و خب با پکیج خاصی به باگ بخورید

✔️ LTS Version:
nvm install -lts


✔️ Current Version:
nvm install


☝🏻اگه هم ورژن خاصی رو مد نظرته، کافیه با کامند زیر لیستی از ورژن هارو ببینی و هر کدومو خواستی نصب کنی
nvm list


👈🏻 برای دستور های دیگه اش هم کامند زیر میتونه کمکت کنه
nvm --help


برای اطلاعات بیشترم هم میتونید به لینک پروژه اش برید:
https://github.com/nvm-sh/nvm

@LearnByLearn

#node_js
#nvm
👍2👌2
🤔 شی گرایی چیه ؟
🤔 مزیتش چیه ؟
🤔 چهار اصل شی گرایی ؟


لینک مقاله 👈🏻 لینک

@LearnByLearn

#concept
#javanoscript
#object_oriented_javanoscript
#oop
👍3
LearnByLearn📖
هرشب :
این حرکت باعث میشه توی بلند مدت دانش خوبی رو ذره ذره یاد بگیرین
شاید به چشم نیاد توی روز ولی یهویی میبینی ۳۰ روز گذشت و تو ۳۰ دستور گیت یا لینوکس یا .... رو یادگرفتی

هر کدوم بیشتر رای آورد همونو تا سطح خوبی پیش میریم
👍63
LearnByLearn📖
هرشب :
از فردا شب استارتشو میزنیم

هرشب یک متد جاواسکریپت رو میگم بعد یه مدت میریم سراغ تایپ اسکریپت و بعد لینوکس و بعدشم گیت
5🥰2🔥1
💬 این متد زمانی استفاده میشه که میخوایید ببینید یه چیزی توی اون آرایه اتون هست یا نه


📥 پارامتر های ورودی این متد:

پارامتر اول searchElement
:
🔹همون مقداریه که میخوایم سرچش کنیم
🔹این پارامتر الزامی هست

پارامتر دوم fromIndex :
🔹با استفاده از این پارامتر تعیین میکنیم که جست و جو از چه ایندکس آرایه شروع بشه
🔹این پارامتر اختیاری هست پس اگه مقداری به این پارامتر ندین جاواسکریپت پیشفرض 0 در نظرش میگیره

📤 خروجی این متد:
🔹مقداری که برمیگردونه یک مقدار boolean هست

Example 1
const arr = ["a", "b", "c", "d"];
arr.includes("c"); //true
arr.includes("f"); //false

Example 2
const arr = ["a", "b", "c", "d"];
arr.includes("c", 1); //true
arr.includes("c", 4); //false


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_include
#javanoscript_method
👍4
LearnByLearn📖
💬 این متد زمانی استفاده میشه که میخوایید ببینید یه چیزی توی اون آرایه اتون هست یا نه 📥 پارامتر های ورودی این متد: پارامتر اول searchElement : 🔹همون مقداریه که میخوایم سرچش کنیم 🔹این پارامتر الزامی هست پارامتر دوم fromIndex : 🔹با استفاده از این پارامتر…
💬 این متد زمانی استفاده میشه که میخوایید ببینید آیا تمام آیتم های اون آرایه مورد نظر دارای این شرطی که به متد every میفرستید هستن یا نه، اگر تمام آیتم های اون آرایه شرط رو پاس کردن true بر میگرده اگرنه false


📥 پارامتر های ورودی این متد:

پارامتر اول callbackFn
:
🔹یک تابع که دارای یک شرطی هست و برای تک تک اعضای ارایه اجرا میشه
🔹خود این تابع سه پارامتر میگیره : currentValue, index, array

پارامتر دوم this :
🔹این پارامتر اختیاری هست پس اگه مقداری به این پارامتر ندین جاواسکریپت پیشفرض undefined در نظرش میگیره

📤 خروجی این متد:
🔹مقداری که برمیگردونه یک مقدار boolean هست
🔹اگه تمام اعضا شرط رو پاس کنند true بر میگردونه

Example 1
const arr = [1,20,45,18];
arr.every((value)=>value >18); //false

Example 2
const arr = [90,20,45,19];
arr.every((value)=>value >18); //true


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_every
#javanoscript_method
🔥6👍1
LearnByLearn📖
💬 این متد زمانی استفاده میشه که میخوایید ببینید آیا تمام آیتم های اون آرایه مورد نظر دارای این شرطی که به متد every میفرستید هستن یا نه، اگر تمام آیتم های اون آرایه شرط رو پاس کردن true بر میگرده اگرنه false 📥 پارامتر های ورودی این متد: پارامتر اول callbackFn…
💬 این متد یک تابع میگیره که دارای یک شرطی هست و این شرط روی تک تک اعضای آرایه تست میشه اگر حتی یک دونه از اون المنت ها شرط رو پاس کنه، true بر میگرده


📥 پارامتر های ورودی این متد:

پارامتر اول callbackFn
:
🔹یک تابع که دارای یک شرطی هست و برای تک تک اعضای ارایه اجرا میشه
🔹خود این تابع سه پارامتر میگیره : currentValue, index, array

پارامتر دوم this :
🔹این پارامتر اختیاری هست پس اگه مقداری به این پارامتر ندین جاواسکریپت پیشفرض undefined در نظرش میگیره

📤 خروجی این متد:
🔹مقداری که برمیگردونه یک مقدار boolean هست
🔹اگه فقط یک دونه از اعضا شرط رو پاس کنه true بر میگردونه

Example 1
const arr = [1,3,45,10];
arr.some((value)=>value >18); //true

Example 2
const arr = [1,3,4,10];
arr.some((value)=>value >18); //false


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_some
#javanoscript_method
LearnByLearn📖
💬 این متد یک تابع میگیره که دارای یک شرطی هست و این شرط روی تک تک اعضای آرایه تست میشه اگر حتی یک دونه از اون المنت ها شرط رو پاس کنه، true بر میگرده 📥 پارامتر های ورودی این متد: پارامتر اول callbackFn : 🔹یک تابع که دارای یک شرطی هست و برای تک تک اعضای…
💬 این متد یک تابع میگیره که دارای یک شرط هست و این شرط روی تک تک اعضای آرایه تست میشه و اولین(دقت کنید اولین) آیتمی که شرط رو پاس کنه، به عنوان خروجی return میشه(برعکس filter)


📥 پارامتر های ورودی این متد:

پارامتر اول callbackFn
:
🔹یک تابع که دارای یک شرطی هست که در صورت پاس شدن توسط اولین آیتم پاس میشه

پارامتر دوم this :
🔹این پارامتر اختیاری هست پس اگه مقداری به این پارامتر ندین جاواسکریپت پیشفرض undefined در نظرش میگیره

📤 خروجی این متد:
🔹مقداری که بر میگردونه اون آیتمی هست که شرط رو پاس کرده
🔹اگر هیچ آیتمی به اون شرط نخوره مقدار برگشت داده شده undefined هست


Example 1
const arr = [5, 12, 8, 130, 44];
arr.find((element) => element > 10); // 12

Example 2
const arr = [5, 12, 8, 130, 44];
arr.find((element) => element < 1); //undefined


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_find
#javanoscript_method
LearnByLearn📖
🤔 پروتوتایپ چیه ؟ 🤔 فرق prototype با _ _ proto _ _ ؟ 🤔 توی جاواسکریپت prototype inheritance چطور کار میکنه ؟ لینک مقاله 👈🏻 لینک @LearnByLearn #concept #javanoscript #object_oriented_javanoscript #prototype
🤔 تا حالا فکر کردین وقتی ما یک method یا یک property رو روی یک object صدا میزنیم، جاواسکریپت چطور میفهمه که اون method از کجا میاد و صداش میزنه؟

توی این مقاله علتش رو میفهمی😉


لینک مقاله 👈🏻 لینک

@LearnByLearn

#concept
#javanoscript
#object_oriented_javanoscript
#prototype_chain
با توجه به دو مقاله ای که راجع به شی گرایی نوشتم و یک سری اطلاعات ریز دیگه

میتونید خروجی کد زیر رو حدس بزنید و علتش رو هم بگید؟

console.log([ ] === [ ]);



@LearnByLearn
#question
👍1
LearnByLearn📖
با توجه به دو مقاله ای که راجع به شی گرایی نوشتم و یک سری اطلاعات ریز دیگه میتونید خروجی کد زیر رو حدس بزنید و علتش رو هم بگید؟ console.log([ ] === [ ]); @LearnByLearn #question
پاسخ چالش:

وقتی مینویسیم
const arr1 = []

در واقع پس قضیه جاواسکریپت اینطوری مینویسه
const arr1 = new Array()

و توی مقاله توضیح دادم که کلمه کلیدی new باعث میشه از constructor عه Array یه ابجکت ساخته بشه و توی arr1 ریخته بشه
const arr2 = new Array()

حالا arr2 هم مینویسیم
الان دوتا شی جدا داریم به اسم arr1 و arr2 که دوتا آرایه خالی و به ظاهر یکسان هستن
اما به خاطر این توی جاواسکریپت آبجکت ها ، reference by value هستن
این دوتا شی کاملا جدا هستن و دوتا آبجکت کاملا جدا از هم و متفاوت داریم
در نتیجه باهم مساوی نیستن چون خونه های متفاوتی از حافظه رو پر کردن
پس جواب
const arr1 = new Array();
const arr2 = new Array()
console.log(arr1 === arr2);
یا
console.log([] === []);

میشه false

اگه با reference by value آشنا نیستید توی یک مقاله مفصلا راجع بهش مینویسم

فعلا به همین بسنده کنید🫣
👍3
LearnByLearn📖
💬 این متد یک تابع میگیره که دارای یک شرط هست و این شرط روی تک تک اعضای آرایه تست میشه و اولین(دقت کنید اولین) آیتمی که شرط رو پاس کنه، به عنوان خروجی return میشه(برعکس filter) 📥 پارامتر های ورودی این متد: پارامتر اول callbackFn : 🔹یک تابع که دارای یک…
💬 این متد یک تابع میگیره که دارای یک شرط هست و این شرط روی تک تک اعضای آرایه تست میشه و اولین(دقت کنید اولین) ایندکس آیتمی(نه خود ایتم) که شرط رو پاس کنه، به عنوان خروجی return میشه اگرهم چیزی پیدا نشه -1 برمیگردونه


📥 پارامتر های ورودی این متد:

پارامتر اول callbackFn
:
🔹یک تابع که دارای یک شرطی هست که در صورت پاس شدن توسط اولین آیتم پاس میشه

پارامتر دوم this :
🔹این پارامتر اختیاری هست پس اگه مقداری به این پارامتر ندین جاواسکریپت پیشفرض undefined در نظرش میگیره

📤 خروجی این متد:
🔹مقداری که بر میگردونه اون آیتمی هست که شرط رو پاس کرده
🔹اگر هیچ آیتمی به اون شرط نخوره مقدار برگشت داده شده 1- هست


Example 1
const arr = [5, 12, 8, 130, 44];
arr.findIndex((element) => element > 10);// index 1

Example 2
const arr = [5, 12, 8, 130, 44];
arr.findIndex((element) => element < 1);// index -1


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_findIndex
#javanoscript_method
LearnByLearn📖
💬 این متد یک تابع میگیره که دارای یک شرط هست و این شرط روی تک تک اعضای آرایه تست میشه و اولین(دقت کنید اولین) ایندکس آیتمی(نه خود ایتم) که شرط رو پاس کنه، به عنوان خروجی return میشه اگرهم چیزی پیدا نشه -1 برمیگردونه 📥 پارامتر های ورودی این متد: پارامتر…
💬 این متد نقش همون for رو بازی میکنه ولی به صورت declarative و یک تابع به عنوان ورودی میگیره که عملیات مورد نیاز رو توی اون تابع انجام میدیم
دقت کنید که در آخر یک آرایه جدید به ما میده ولی forEach همون آرایه اصلی رو دستخوش تغییر میکنه



Example 1
const array = [1, 4, 9, 16];
const array2 = array.map((x) => x * 2);
console.log(array2);
// Expected output: Array [2, 8, 18, 32]



هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_map
#javanoscript_method
2
LearnByLearn📖
💬 این متد نقش همون for رو بازی میکنه ولی به صورت declarative و یک تابع به عنوان ورودی میگیره که عملیات مورد نیاز رو توی اون تابع انجام میدیم دقت کنید که در آخر یک آرایه جدید به ما میده ولی forEach همون آرایه اصلی رو دستخوش تغییر میکنه Example 1 const array…
💬 این متد یک تابع که دارای یک شرط هست رو دریافت میکنه و آیتم هایی که اون شرط رو پاس میکنن توی یک آرایه میریزه و return میکنه



Example
const myArray = [12, 5, 8, 130, 44];
const filtered = myArray.filter((item)=>item > 10 );
console.log(filtered);



هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_filter
#javanoscript_method
👍3❤‍🔥1🔥1
فرض کنید توی سیستم عامل لینوکسی تون میخوایید یک پکیجی رو نصب کنید😌

مثلا توی این مثال میخواییم vpn windscribe رو نصب کنیم اما با Error عکس 1 بر میخوریم 😱

این ارور(عکس 1) داره میگه که پکیجی که داری نصب میکنی به پکیج های زیر وابسته اس و باید قبلش اینارو نصب کنی

خب یه راهش اینه بیاییم دستی دونه دونه پکیج هارو نصب کنیم که خب عقلانی نیست شاید پنجاه تا وابستگی داشت
تازه بیشتر اوقات خود دیپندنسی ها باز دیپندنسی دارن🥵
راه بهتر چیه ؟🤔
از دستور زیر استفاده کنیم
sudo apt install -f

این دستور میاد اتوماتیک اون وابستگی هارو شناسایی میکنه و براتون نصب میکنه

حالا میتونید دوباره windscribe رو نصب کنید 🥳

@LearnByLearn
#linux
👍2
LearnByLearn📖
💬 این متد یک تابع که دارای یک شرط هست رو دریافت میکنه و آیتم هایی که اون شرط رو پاس میکنن توی یک آرایه میریزه و return میکنه Example const myArray = [12, 5, 8, 130, 44]; const filtered = myArray.filter((item)=>item > 10 ); console.log(filtered); هرشب…
💬 این متد دوتا ورودی به اس start و end میگیره
در وقاقع شما با استفاده از این دو ورودی تعیین میکنید چه بخشی از آرایه مورد نظرتون رو برداره بهتون نمایش بده

💬 همچنین خروجی این متد یک آرایه از اون تیکه های جدا شده هست

💬 توجه کنید که هردوتا ورودی start و end اختیاری هستن و میتونید واردشون نکنید که در این صورت
مقدار پیشفرض start اولین عنصر آرایه و
مقدار پیشفرض end آخرین عنصر آرایه هستش
پس طبیعیه که در صورت ندادن ورودی کل آرایه رو برمیگردونه


Example 1‍
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice());
// ["ant", "bison", "camel", "duck", "elephant"]


Example 2
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(1,3));
// ["bison", "camel"]


Example 3
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// ["camel", "duck", "elephant"]


هرشب یه متد از جاواسکریپت رو یاد بگیر 😉

@LearnByLearn

#method_slice
#javanoscript_method
👌1