Let JavaScript
- پچھلے کا پہل جی ایس متغیر
- بعد کا پہل جی ایس کانست
ECMAScript 2015
ECMAScript 2015 دو کلمه کلیدی مهم جدید به JavaScript اضافه کرده است:لیٹ
و const
.
این دو کلمه کلیدی در JavaScript محدوده بلوک را (Block Scope) متغیرها (و متغیرهای ثابت).
قبل از ES2015، JavaScript فقط دو نوع محدوده داشت:محدوده globalومحدوده function.
محدوده global
گлобالمتغیرهایی که در خارج (توابع) تعریف شدهاندمحدوده global.
مثال
var carName = "porsche"; // کد اینجا میتواند از carName استفاده کند function myFunction() { // کد اینجا نیز میتواند از carName استفاده کند }
گлобالمتغیرها میتوانند در هر جایی از برنامه JavaScript دسترسی پیدا کنند.
محدوده function
محلیمتغیرهایی که در داخل (توابع) تعریف شدهاندمحدوده function.
مثال
// کد اینجا نمیتواند از carName استفاده کند function myFunction() { ور جی carName = "porsche"; // کد اینجا CAN از carName استفاده کند } // کد اینجا نمیتواند از carName استفاده کند
محلیمتغیرها فقط میتوانند در داخل تابعی که در آن تعریف شدهاند دسترسی پیدا کنند.
محدوده بلوک JavaScript
ذیلی طور پر ور جی
متغیرهای تعریف شده با استفاده از کلمات کلیدیمحدوده.
در بلوک {} متغیرهای تعریف شده در داخل میتوانند از بیرون بلوک دسترسی پیدا کنند.
مثال
{ var x = 10; } // در اینجا میتوان از x استفاده کرد
قبل از ES2015، JavaScript بدون محدوده بلوک بود.
میتوان از لیٹ
کلمات کلیدی تعریف متغیرهای دارای محدوده بلوک را دارند.
در بلوک {} متغیرهای تعریف شده در داخل نمیتوانند از بیرون بلوک دسترسی پیدا کنند:
مثال
{ let x = 10; } // در اینجا نمیتوان از x استفاده کرد
دوباره تعریف متغیر
استفاده از ور جی
کلمات کلیدی دوباره تعریف متغیر میتواند مشکلی ایجاد کند.
دوباره تعریف متغیر در بلوک باعث تعریف مجدد متغیرهای بلوک خارجی نیز میشود:
مثال
var x = 10; // در اینجا x برابر با 10 است { var x = 6; // در اینجا x برابر با 6 است } // در اینجا x برابر با 6 است
استفاده از لیٹ
کلمات کلیدی دوباره تعریف متغیر میتواند این مشکل را حل کند.
دوباره تعریف متغیر در بلوک باعث تعریف مجدد متغیرهای بلوک خارجی نمیشود:
مثال
var x = 10; // در اینجا x برابر با 10 است { let x = 6; // در اینجا x برابر با 6 است } // در اینجا x برابر با 10 است
پشتیبانی مرورگر
Internet Explorer 11 یا نسخههای قدیمیتر آن به طور کامل پشتیبانی نمیکند لیٹ
کلمات کلیدی را.
جدول زیر تعریف میکند که اولین نسخه کامل لیٹ
کلمات کلیدی نسخه مرورگر:
Chrome 49 | IE / Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
مارس 2016 | جولای 2015 | ژانویه 2015 | سپتامبر 2017 | مارس 2016 |
محدوده حلقه
در حلقه استفاده میشود ور جی
:
مثال
var i = 7; for (var i = 0; i < 10; i++) { // چندین دستور } // در اینجا i برابر 10 است
در حلقه استفاده میشود لیٹ
:
مثال
let i = 7; for (let i = 0; i < 10; i++) { // چندین دستور } // در اینجا i برابر 7 است
در مثال اول، متغیرهایی که در حلقه استفاده میشوند با ور جی
متغیرهای خارج از حلقه را دوباره اعلام کردهاید.
در مثال دوم، متغیرهایی که در حلقه استفاده میشوند با لیٹ
متغیرهای خارج از حلقه را دوباره اعلام نکردهاید.
اگر در حلقه از لیٹ
اگر متغیر i را اعلام کنید، فقط در داخل حلقه، متغیر i قابل مشاهده است.
محدوده function
در زمان اعلام متغیر در داخل تابع از ور جی
و لیٹ
مثل هم هستند.
آنها همهمحدوده function:
function myFunction() { var carName = "porsche"; // محدوده function } function myFunction() { let carName = "porsche"; // محدوده function }
محدوده global
اگر در خارج از بلوک اعلام شود، ور جی
و لیٹ
مثل هم هستند.
آنها همهمحدوده global:
var x = 10; // محدوده global let y = 6; // محدوده global
متغیرهای global در HTML
در استفاده از JavaScript، محدوده全局 محیط JavaScript است.
در HTML، محدوده全局 است شیء window.
ذیلی طور پر ور جی
متغیرهای تعریف شده با کلمات کلیدی متعلق به شیء window هستند:
مثال
var carName = "porsche"; // کد در اینجا میتواند از window.carName استفاده کند
ذیلی طور پر لیٹ
متغیرهای تعریف شده با کلمات کلیدی متعلق به شیء window نیستند:
مثال
let carName = "porsche"; // کد در اینجا نمیتواند از window.carName استفاده کند
اعادة تسمیه
مجاز است که در هر مکان از برنامه استفاده شود ور جی
اعادة تسمية متغيرات جافااسکریپت:
مثال
var x = 10; // الآن، x برابر 10 است var x = 6; // الآن، x برابر 6 است
ایک مرتبہ کے اثر زون یا اسی بلک میں، ذیلی طور پر لیٹ
ایک ور جی
متغیر نہیں اجازت دیا جاتا:
مثال
var x = 10; // مجاز let x = 6; // نا معقول { var x = 10; // مجاز let x = 6; // نا معقول }
ایک مرتبہ کے اثر زون یا اسی بلک میں، ذیلی طور پر لیٹ
ایک لیٹ
متغیر نہیں اجازت دیا جاتا:
مثال
لیٹ ایکس = 10; // اجازت let x = 6; // نا معقول { لیٹ ایکس = 10; // اجازت let x = 6; // نا معقول }
ایک مرتبہ کے اثر زون یا اسی بلک میں، ذیلی طور پر ور جی
ایک لیٹ
متغیر نہیں اجازت دیا جاتا:
مثال
لیٹ ایکس = 10; // اجازت ور ایکس = 6; // نہیں اجازت { لیٹ ایکس = 10; // اجازت ور ایکس = 6; // نہیں اجازت }
مختلف اثر زون یا بلک میں لیٹ
متغیر دوبارہ تعریف کرنا اجازت دیا جاتا ہے:
مثال
لیٹ ایکس = 6; // اجازت { لیٹ ایکس = 7; // اجازت } { لیٹ ایکس = 8; // اجازت }
بلائسنگ
ذیلی طور پر ور جی
معلوم کئے گئے متغیربلائسنگبالایا اٹھتا ہے، اگر آپ کو کیا نہیں پتا کہ بلائسنگ کیا ہے تو اپنے بلائسنگ کا چپتر پڑھیں
آپ متغیر کو اپنے تعریف سے پہلے استعمال کرسکتے ہیں:
مثال
// یہاں، آپ کارنیم کو استعمال کرسکتے ہیں ور جی;
ذیلی طور پر لیٹ
تعریف کئے گئے متغیر بلک میں اعلیٰ نہیں اٹھتا
درج کیا لیٹ
متغیر کا پہلے استعمال کرسکتے ہیں تو ریفِرنس ایرور کا پیش آمد
متغیر بلک میں اپنے بلاک کی شروعات سے تک تاحال تعلیمات کا مرجع
مثال
// یہاں، آپ کارنیم کو استعمال نہیں کرسکتے لیٹ کارنیم;
- پچھلے کا پہل جی ایس متغیر
- بعد کا پہل جی ایس کانست