فر ق دستور var و let
فر ق دستور
var و let
در زبان برنامه نویسی جاوا اسکریپت چیه؟
٢ پاسخ
در زبان جاوا اسکریپت مدرن، ما سه keyword برای اعلان یک متغیر (variable) داریم.
var
let
const
همچنین ما دو اصلاح global scope و local scope را داریم.
یکی از تفاوتهای var و let در اینجا مشخص میشود:
وقتی متغیری را با کلمهکلیدی var تعریف میکنیم؛ محدودهٔ local scope را فقط در فانکشنها برای این متغیر داریم و مقدار متغیر var در خارج از فانکشن در دسترس نیست. مثلاً:
var age = 20; // age is in global scope
if (true) {
var name = "ali"; // name is in global scope
console.log("if: ",age); // ✅ age is in global scope
}
function bio() {
var family = "rezayi"; // ⭐family is in local scope
console.log("function: ",age); // ✅ age is in global scope
console.log("function: ",name); // ✅ name is in global scope
console.log("function: ",family); // ✅ family is in local scope
}
bio();
console.log("global: ",age); // ✅ age is in global scope
console.log("global: ",name); // ✅ name is in global scope
console.log("global: ",family); // ❌ family is in local scope
ولی هر متغیری با کلمهکلیدی let را هرگاه داخل یک بلوک کد یا {} دیدیم، متغیر در آنجا به صورت local scope است. مثلاً:
let age = 20; // age is in global scope
if (true) {
let name = "ali"; //⭐ name is in local scope
console.log("if: ",age); // ✅ age is in global scope
}
function bio() {
let family = "rezayi"; //⭐ family is in local scope
console.log("function: ",age); // ✅ age is in global scope
console.log("function: ",name); // ❌ name is in local scope
console.log("function: ",family); // ✅ family is in local scope
}
bio();
console.log("global: ",age); // ✅ age is in global scope
console.log("global: ",name); // ❌ name is in local scope
console.log("global: ",family); // ❌ family is in local scope
به شما این اجازه را میدهد که متغیرهایی تعریف کنید که به یک محدوده بلوک از کد، مثل یک حلقه for، محدود باشد و خارج از محدوده بلوک تعریف نشده باشد. برخلاف var، متغیری که با var تعریف شده باشد، بدون در نظر گرفتن محدوده یک بلوک، در تمام کد قابل دسترس و سراسری (global) است