Ninja Learn | نینجا لرن
1.25K subscribers
96 photos
36 videos
11 files
307 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.me/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.me/+td1EcO_YfSphNTlk
Download Telegram
#پست_جدید

💎 فرق بین let ،const و var در جاوااسکریپت برای تعریف متغیر 💎

تو جاوااسکریپت، سه نوع کلیدواژه (Keyword) برای تعریف متغیرها استفاده میشه: var، let و const.

هر کدوم از این کلیدواژه‌ها رفتار و ویژگی‌های خاص خودشون رو دارن که در ادامه به توضیح و مقایسه اون ها با مثال‌های مختلف می‌پردازیم.

1️⃣ کلمه کلیدی var:

کلمه کلیدی var قدیمی‌ترین روش برای تعریف متغیرها در جاوااسکریپته. متغیرهایی که با var تعریف میشن دارای این ویژگی‌ ها هستن:


دامنه (Scope):
کلمه کلیدی var به صورت "function scope" هست، به این معنی که اگه داخل یک تابع تعریف بشه، فقط در داخل همون تابع قابل دسترسیه. خارج از توابع، متغیرهای var در سطح Global تعریف میشن.

در block scope (داخل {})، متغیرهای var به صورت local عمل نمی‌کنن و همچنان در سطح تابع یا Global تعریف میشن.

Hoisting:
متغیرهای var به بالای محدوده (scope) خودشون هوست میشن، به این معنی که میشه قبل از تعریف اونها ازشون استفاده کرد.

مثال:

console.log(a); // undefined
var a = 5;
console.log(a); // 5

if (true) {
var b = 10;
}
console.log(b); // 10


2️⃣ کلمه کلیدی let:

کلمه کلیدی let یکی از دو روش جدیدتر (ES6) برای تعریف متغیر هاست. متغیرهایی که با let تعریف میشن دارای این ویژگی‌ها هستن:

دامنه (Scope):
کلمه کلیدی let دارای "block scope" هست، به این معنی که فقط در داخل بلاکی (بین {}) که داخلش تعریف شدن قابل دسترسی هستن.

Hoisting:
متغیرهای let هویست نمیشن و در محدوده‌ی temporal dead zone (TDZ) تا زمانی که تعریف نشدن قابل دسترسی نیستند.

مثال:

if (true) {
let x = 10;
console.log(x); // 10
}
// console.log(x); // ReferenceError: x is not defined

console.log(y); // ReferenceError: y is not defined
let y = 5;
console.log(y); // 5



3️⃣ کلمه کلیدی const:

کلمه کلیدی const یک روش جدیدتر (ES6) دیگه برای تعریف متغیر هاست. متغیرهایی که با const تعریف میشن دارای این ویژگی‌ ها هستن:


دامنه (Scope):
متغیر های const هم مشابه let دارای "block scope" هستن.

Hoisting:
متغیر های const مشابه let هویست نمیشن و در TDZ تا زمانی که تعریف نشدن قابل دسترسی نیستن.


تغییر مقدار (Reassignment):
متغیرهای const نمی‌تونن دوباره مقداردهی بشن، به این معنیه که پس از تعریف، نمیشه مقدار جدیدی بهشون داد. این نکته برای آبجکت ها و آرایه‌ها به معنای تغییرناپذیریشون نیست بلکه فقط به معنای تغییرناپذیری رفرنس (Reference) اونهاست.

مثال:

const pi = 3.14;
console.log(pi); // 3.14

// pi = 3.15; // TypeError: Assignment to constant variable

if (true) {
const y = 10;
console.log(y); // 10
}
// console.log(y); // ReferenceError: y is not defined

const arr = [1, 2, 3];
arr.push(4); // این مجاز ه چون ما مرجع آرایه رو تغییر نمیدیم بلکه مقدار داخلش رو تغییر میدیم
console.log(arr); // [1, 2, 3, 4]

// arr = [5, 6, 7]; // TypeError: Assignment to constant variable



جمع‌بندی

var:
دارای function scope، متغیرها به بالای scope هویست میشن.

let:
دارای block scope، متغیرها در محدوده‌ی TDZ هستن و هویست نمیشن.

const:
دارای block scope، متغیرها در محدوده‌ی TDZ هستن و هوست نمیشن، قابل تغییر نیستن پس از
تعریف.

⭕️ استفاده از let و const به دلیل رفتارهای مدرن‌تر و قابل پیش‌بینی‌ترشون نسبت به var توصیه میشه. ⭕️


#جاوااسکریپت #javascript

@ninja_learn_ir
7
💎 کالبک ها در جاوا اسکریپت 💎

امروز میخوایم یکی از مفهوم های خیلی مهم و کاربردی در جاوا اسکریپت رو با هم بررسی کنیم: کالبک ها (callbacks).
شاید اولش یه کم پیچیده به نظر برسه، اما نگران نباشید! با مثال های ساده و کاربردی، این مفهوم رو براتون خیلی روشن میکنم.

کالبک چیه؟

کالبک در واقع یه تابعه که به عنوان آرگومان به تابع دیگه ای پاس داده میشه. یعنی یه تابع رو میگیریم و به جای اینکه خودمون مستقیماً اونو اجرا کنیم، به تابع دیگه ای میدیم تا در زمان مناسب خودش اونو صدا بزنه.


چرا به کالبک نیاز داریم؟
فرض کن میخوای یه عملیات خاصی رو انجام بدی، اما میخوای بعد از اینکه این عملیات تموم شد، یه کار دیگه ای هم انجام بشه. اینجا دیگه کالبک ها به دادمون میرسن.
با استفاده از کالبک ها میتونیم بگیم که بعد از اینکه عملیات اول تموم شد، کدهایی که داخل کالبک نوشته شده، اجرا بشه.

مثال ساده:


function greet(name, callback) { console.log(`سلام ${name}!`); callback(); } function sayGoodbye() { console.log("خداحافظ!"); } greet("علی", sayGoodbye); 

در این مثال:
تابع greet دو آرگومان میگیره: یک نام و یک کالبک.
بعد از چاپ سلام، تابع callback رو صدا میزنه که در این مثال sayGoodbye هست.


پس خروجی این کد میشه:

سلام علی!
خداحافظ!

مثال کاربردی تر:

function fetchData(url, callback) { // کدهایی برای دریافت داده از یک آدرس اینترنتی // ... callback(data); // بعد از دریافت داده، کالبک رو با داده دریافت شده صدا میزنه } function displayData(data) { console.log(data); } fetchData("https://api.example.com/data", displayData); 

در این مثال: ⬇️

1⃣ تابع fetchData داده رو از یک آدرس اینترنتی دریافت میکنه.

2⃣ بعد از دریافت داده، تابع callback رو با داده دریافت شده صدا میزنه.

3⃣ و displayData به عنوان کالبک استفاده شده و داده رو در کنسول چاپ میکنه.

👀 کاربردهای کالبک ها:

تابع های ناهمزمان: برای مدیریت عملیات هایی که زمان بر هستند مثل درخواست های HTTP، تایمرها و ...

📅 رویدادها(Events): در رویدادهایی مثل کلیک کردن روی یک دکمه، بارگذاری یک صفحه و ...

🗂 کتابخانه ها و فریمورک ها: خیلی از کتابخانه ها و فریمورک های جاوا اسکریپت از کالبک ها استفاده میکنن.

جمع بندی:
کالبک ها یه ابزار قدرتمند در جاوا اسکریپت هستن که بهتون اجازه میدن کدهایتون رو به صورت ناهمزمان و رویداد محور بنویسید. با تمرین و ممارست، میتونید به راحتی از کالبک ها در پروژه های خودتون استفاده کنید.

#javascript #callback #programing
🔥2
#javascript #introducing_website


●● وبسایت javscript.info چیست؟ ●●

اگر با زبان برنامه نویسی JavaScript کار میکنید احتمالا اسم این سایت رو زیاد شنیده باشید. javscript.info یک منبع آنلاینِ رایگان، جامع و تعاملی برای یادگیری زبان برنامه‌نویسی جاوااسکریپت است. این وب‌سایت به شما کمک می‌کند تا مفاهیم جاوااسکریپت را به صورت ساده و روان یاد بگیرید.

ویژگی‌های کلیدی این وب‌سایت‌ 🚀

محتوای باکیفیت: مطالب این وب‌سایت به‌روز هستند و با استانداردهای جدید جاوااسکریپت مطابقت دارند. 💯

زبان ساده: مفاهیم به زبانی ساده و قابل فهم توضیح داده شده‌اند تا برای مبتدیان و افراد با تجربه مناسب باشد.

تعاملی بودن: می‌توانید مستقیماً در مرورگر خود کد بنویسید و نتیجه را ببینید تا درک بهتری از مفاهیم پیدا کنید.

چندزبانه بودن: این وب‌سایت به زبان‌های مختلف از جمله فارسی ترجمه شده است. ( مشاهده ترجمه فارسی وبسایت ) 🌐

چه کسانی می‌توانند از این وب‌سایت استفاده کنند ؟ 🤔

مبتدیان: اگر هیچ تجربه قبلی در برنامه‌نویسی ندارید، این وب‌سایت می‌تواند شروع خوبی برای شما باشد.

برنامه‌نویسان با تجربه: اگر قبلاً با جاوااسکریپت کار کرده‌اید، می‌توانید از این وب‌سایت برای یادگیری مفاهیم پیشرفته‌تر یا مرور مفاهیم قبلی استفاده کنید.
💢 برای عمیق شدن توی زبان جاوااسکریپت هم میتونه بسیار کمک کننده باشه.


در کل javscript.info یک منبع ارزشمند برای هر کسی است که می‌خواهد جاوااسکریپت یاد بگیرد.

Channel | YouTube | Instagram
👍42👏2
Forwarded from 𝗖𝗢𝗢𝗟𝗬 𝗖𝗢𝗗𝗘 | کولی کد (Mohammad hossein)
#javascript #trick #js_trick

سه تا از کابردی ترین متد ها برای کار با آبجکت ها ●

متد Object.keys : این متد تمام keyهای یک آبجکت رو گرفته و آن‌ها را در یک آرایه قرار می‌دهد.

➋ متد Object.values : این متد تمام valueهای یک آبجکت را گرفته و آن‌ها را در یک آرایه قرار می‌دهد.

➌ متد Object.entries : این متد keyها و valueها را به صورت key, value ترکیب می‌کند و آرایه‌هایی از این جفت‌ها ایجاد می‌کند.

مثال عملی 🚀

const obj { key1: 'value1', key2: 'value2', key3: 'value3'

};

const keysArray = Object.keys(obj);

const valuesArray = Object.values(obj);

const entriesArray = Object.entries(obj);

console.log(keysArray);
// Output: ['key', 'key2', 'key3']

console.log(valuesArray);
// Output: ['value', 'value2', 'value']

console.log(entriesArray);
// Output: [['key', 'value'], ['key2', 'value'], ['key3', 'value3']]


با حمایتاتون بهمون انرژی بدید ❤️
〰️〰️〰️〰️〰️〰️〰️〰️〰️〰️
Channel | Group | YouTube
👍54