روشهای مختلف تعریف متغیرها در جاوا اسکریپت
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
بهترین کارگاه رویه کوبی و تعمیر مبل راحتی و استیل در تهران با قیمت و کیفیت عالی
ایجاد متغیرها در جاوا اسکریپت:
1) اعلان:
متغیر یک نام منحصر بفرد گرفته و در محدودهی اجرایی خودش ثبت میشود.
2)مقداردهی اولیه:
بعد از تعریف متغیر یک مقدار اولیه پیش فرض به آن داده میشود. در واقع متغیر ها مکانهایی از حافظه هستند که دادهها را در خود ذخیره میکند.
3)انتصاب
زمانی اتفاق میافتد که مقدار خاصی به متغیر اختصاص داده شود.
"جاوا اسکریپت به حروف بزرگ و کوچک حساس است. برای مثال var با Var دو عبارت متفاوت برای این زبان تلقی میشود."
تعریف متغیر ها:
var
var x; // Declaration and initialization
x = "Hello World"; // Assignment
// Or all in one
var y = "Hello World";
var یکی از معمولترین اعلانهایی است که برای تعریف متغیرها در جاوا اسکریپت استفاده میشود. تا پیش از مطرح شدن ECMAScript 6 کلید واژهی var تنها راه تعریف متغیرها در جاوا اسکریپت به حساب میامد.در صورتیکه میخواهید یک متغیر به صورت محلی تعریف شود، از عبارت var استفاده کنید. در غیر اینصورت واژهی مورد نظر به عنوان یک متغیر عمومی شناخته میشود.
مثال:
function sayHello(){
var hello = "Hello World";
return hello;
}
console.log(hello);
در قطعه کد بالا متغیر hello فقط برای sayHello تعریف شده است. اما در کدی که در ادامه آمده است، متغیر hello عمومی است.
var hello = "Hello World";
function sayHello(){
return hello;
}
console.log(hello);
Let
let x; // Declaration and initialization
x = "Hello World"; // Assignment
// Or all in one
let y = "Hello World";
واژهی Let مدل جدیدی از var است که در ES6 معرفی شد. با استفاده از این کلمهی کلیدی متغیر به یک تابع محدود نشده و میتوانید ان را برای یک بلوک تعریف کنید. یک بلوک توسط {} معرفی میشود.
var name = "Peter";
if(name === "Peter"){
let hello = "Hello Peter";
} else {
let hello = "Hi";
}
console.log(hello);
در قطعه کد بالا متغیر hello بیرون از بلوک if در دسترس نخواهد بود. let درصد خطاهای برنامهتان را کمتر میکند.
var name = "Peter";
if(name === "Peter"){
let hello = "Hello Peter";
console.log(hello);
} else {
let hello = "Hi";
console.log(hello);
}
Const
const x = "Hello World";
در ES 6 کلمهی جدید مطرح شد که به برنامهنویسان اجازه میداد متغیرهای خواندنی ایجاد کرده و به آنها مقدار دهند. متغیرهای ثابت برای نگهداری مقادیری استفاده میشوند که غیر قابل تغییرند. این مقادیر یک بار تعریف شده و در جاهای مختلف برنامه استفاده میشوند.
پیش از ارائهی ES6 تعریف مقادیر ثابت در جاوا اسکرپت امکانپذیر نبود. اما حالا از کلمه کلیدی const برای تعریف این مقادیر استفاده میشود. واژهی const نیز مانند let دارای محدودهی بلوکی است.
متغیرهای عمومی
متغیرهایی که به صورت var،let و const تعریف نشدهاند، اصطلاحا متغیرهای عمومی تلقی میشوند. این متغیرها حتی اگر در داخل تابع تعریف شده باشند، در تمام بخش های کد قابل دسترسی میشوند.
مثال:
function sayHello(){
hello = "Hello World";
return hello;
}
sayHello();
console.log(hello);
حوزه تعریف متغیر و Hoisting
var، let و const تفاوت دیگری هم دارند که به دلیل وجود مفهومی به نام hoisting مطرح میشود. یکی دیگر از ویژگیهایی جاوا اسکریپت این است که میتوانید متغیرها را قبل از تعریف شدن، استفاده کنید. به این مفهوم بالا بردن یا hoisting گفته میشود. به عبارت دیگر میتوان متغیر را مورد استفاده قرار داده و بعدا آن را تعریف کنید.
برای متغیرهای var در صورتی که متغیر بعدا تعریف نشده باشد، مقدار undefined برگردانده میشود در صورتیکه در متغیرهای let و const برنامه خطا میدهد.
"جاوا اسکریپت مقداردهیهای اولیه را hoist نمیکند."
console.log(hello);
var hello;
hello = "I'm a variable";
var hello;
console.log(hello);
hello = "I'm a variable";
برای جلوگیری از بروز خطا در کدنویسی بهتر است متغیرهای خود را در ابتدای scope تعریف کنید.
منبع:
sitepoint
نظرات و سوالات کاربران