تک دیک

واژه نامه و مجله آموزشی کامپیوتر و تکنولوژی

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Filter by Categories
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Numbers
O
P
Q
R
S
T
U
V
W
Y
Z
آگهی
اپلیکیشن ها
اچ‌تی‌ام‌ال
اسکرچ
اشخاص و شرکت ها
امنیت
امنیت آنلاین
اندروید
اینترنت
پایتون
پرسش و پاسخ
جاوااسکریپت
حروف انگلیسی
خبر
دوره های آموزشی
سخت‌افزار
سی‌اس‌اس
شبکه
فنی
کنسول جستجوی گوگل
گرافیک
لینوکس
مایکروسافت اکسل
مایکروسافت پاورپوینت
مایکروسافت ورد
مبانی کامپیوتر
مجله
مجله – امنیت
مجله – بازی
مجله – برنامه نویسی
مجله – دنیای اینترنت
مجله – سخت افزار
مجله – سیستم
مجله – شبکه
مجله – شبکه های اجتماعی
مجله – عمومی
مجله – گوشی‌های هوشمند
مجله – نرم افزار
مجله – ویندوز
مقدماتی
موضوعی
نرم‌افزار
وردپرس

جزئیات let و تفاوت آن با var در جاوااسکریپت

جزئیات let و تفاوت آن با var برای تعریف متغیر در جاوااسکریپت

همانطور که در مقاله متغیر در جاوااسکریپت خواندید می‌توانید از کلمه کلیدی let و var برای تعریف متغیر استفاده کنید. در این قسمت از مجموعه آموزشی جاوااسکریپت با جزئیات let و تفاوت‌های آن با var در JavaScript آشنا می‌شوید.

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

قلمرو بلاکی

کلمه کلیدی let باعث می‌شود متغیر به صورت محلی دارای قلمرو بلاک فعلی باشد. به این ترتیب متغیری که با let در یک بلاک داخل { } تعریف می‌شود در خارج از این بلاک قابل دسترس نیست:

{
  let x = 20;
}
// You cannot use x here

اما متغیرهایی که با کلمه کلیدی var تعریف می‌شوند در خارج از بلاک نیز قابل دسترسی هستند:

{
  var x = 20;
}
// You can use x here

به این ترتیب اگر متغیری که با let تعریف شده است در یک زیربلاک (یا بلاک داخلی) با همان نام توسط let تعریف شود دو متغیر مجزا خواهیم داشت که متغیر بلاک داخلی به قلمرو همان بلاک محدود می‌شود:

let x = 20;
// here, value of x is 20
{
  let x = 40; // a different variable with value 40
}
// here, value of x is 20

اما بازنویسی کد فوق با var باعث ایجاد متغیر جدیدی محدود به زیربلاک نخواهد شد. به این ترتیب انجام هر تغییری در بلاک داخلی روی این متغیر در خارج از آن نیز معتبر خواهد بود:

var x = 20;
// here, value of x is 20
{
  var x = 40; // the same variable, now value of x is 40
}
// here, value of x is 40

عدم امکان تعریف مجدد متغیر با let در جاوااسکریپت

متغیرهای تعریف شده با دستور let نمی‌توانند در همان قلمرو دوباره تعریف شوند. با وجود این خاصیت در دستور let، امکان اینکه یک متغیر را به اشتباه یا سهوی دوباره تعریف کنید از بین می‌رود. به این ترتیب نمی‌توانید به صورت زیر عمل کنید:

let x = "Hello, world!";
let x = 20;

این درحالیست که امکان تعریف مجدد متغیری که با دستور var تعریف شده است وجود دارد. بنابراین کد زیر قابل قبول است:

var x = "Hello, world!";
var x = 20;

فراموش نکنید بر اساس این موضوع، شناسه متغیری که با let در یک تابع تعریف می‌شود نیز نمی‌تواند با پارامترهای تابع یکسان باشد.

تقدم تعریف متغیر با let نسبت به استفاده از آن

متغیری که با let تعریف می‌شود باید پیش از استفاده تعریف شده باشد. بر اساس این موضوع، کد زیر باعث بروز خطا می‌شود:

x = 40;
let x;

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

x = 40;
var x;

عدم چسبیدن به this

برخلاف var، متغیری که با let تعریف می‌شود باعث ایجاد یک ویژگی برای this نمی‌شود:

var x1 = 10;
let x2 = 20;
console.log(this.x1); // 10
console.log(this.x2); // undefined

تعریف چند متغیر در یک دستور

شما می‌توانید چند متغیر را در یک دستور با کمک let یا var تعریف کنید. کافیست متغیرها را با کاما از هم جدا کنید:

let x = 40, y = "Hello, World!", z;

بازگشت به فهرست مجموعه آموزشی JavaScript

تولید و انتشار محتوای تخصصی علاوه بر زمان، هزینه هم دارد. بخش عمده هزینه‌های تک‌دیک با بودجه شخصی و حمایت‌های شما کاربران گرامی تأمین می‌شود. اگر محتوای این صفحه برای شما مفید واقع شده با روش‌های مختلفی از سراسر دنیا می‌توانید در تکمیل و تداوم فعالیت این سایت به گروه کوچک ما کمک کنید و در اجر معنوی آن نیز سهیم شوید. ما صمیمانه قدردان این محبت شما هستیم.

ما در تک‌دیک تلاش می‌کنیم محتوایی دقیق، واضح و بدون اشتباه منتشر کنیم. به همین دلیل هر مطلب پیش از انتشار بارها بازبینی می‌شود. از طرف دیگر با توجه به حجم بالای مطالب به کمک شما هم نیاز داریم. اگر احساس می‌کنید محتوای این صفحه باید بروزرسانی، تکمیل یا تصحیح شود و یا سوالی در مورد این مطلب دارید که بدون پاسخ مانده خوشحال می‌شویم آن را در بخش دیدگاه‌های همین مطلب با ما در میان بگذارید.

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته‌های بیشتر

تبلیغات متنی ساده