در صورتیکه در حوزه طراحی وب سایت عمل داشته باشید، بایقین با لهجه جاوا اسکریپت شناخت دارید و همانگونه که میدانید در طراحی سایت در مشهد بیشتر لهجه های اپلیکیشن نویسی مضمون متغیر (variable) وجود دارااست. تمجید کردن variable در هر لهجه متعدد میباشد و با دقت به سینتکس آن گویش معلوم میگردد. همین طور در لهجه جاوا اسکریپت برای تعریف و تمجید کردن متغیر از کلیدواژه های let، var و const استعمال میگردد.
تفاوت هایی میان تعریفوتمجید کردن متغیرها وجود داراست که بابد هنگام استعمال از آنها استحضار داشته باشید. در شرایطیکه که فارغ از هیچ دانشی از آنان به کار گیری نمائید ممکن میباشد در پروژه های گران قدر با مشکلاتی روبرو گردید.
درین نوشتهیعلمی قصد داریم از مهمترین تفاوت متغیرهای var و let در جاوا اسکریپت بپردازیم؛ پس تا انتهای نوشتهیعلمی با ما هم پا باشید.
شناخت با بعضا از اصطلاحات در اپ نویسی
پیش از مقایسه کردن این دو متغیر بهتره با یکسری تا تمجید آشنا گردید.
1. اسکوپ (Scope)
Scope یا این که حوزه، به بخش هایی از کد گفته میگردد که متغیرها در بدنه آن قابل دسترس و استعمال میباشند. از جمله در تابع یا این که کلاس متغیرهای سراسری باطن بدنه جایدارد Scope Global می باشند و متغیرهایی که سوا بدنه وجود داراست وابسته به Local Scope هستند.
2. Hoisting
این کلیدواژه به لهجه پارسی به معنای بالا بردن میباشد و در گویش جاوا اسکریپت مکانیزمی میباشد که سبب ساز میگردد پیش از اجرای نرم افزار، متغیرها و توابع، به بالاترین سطح scope منتقل شوند.
var در جاوا اسکریپت
پیش از اینکه لهجه جاوا اسکریپت ورژن ES6 معرفی خواهد شد، فقط رویه جان دار برای ایجاد کرد متغیرها در جاوا اسکریپت متغیر var بود. استعمال از متغیر var در پروژه های تبارک مشکلاتی بوجود میآورد و به همین عامل یک متغیر جدیدی به اسم let برای تمجید کردن متغیر تولید کردند.
پیش از اینکه درباره متغیر let حرف کنیم، بیاین درباره var بیشتر بدانیم. هنگامی که از متغیر var استعمال میکنید، میاقتدار یا این که در حوزه سراسری و لوکال (محلی) دسترسی داشته باشید. یعنی زمانی که یک متغیر در خارج از یک تابع تعریف و تمجید گردیده باشد در کلیه اپلیکیشن می اقتدار بهره مند شد (حتی باطن تابع).
var x = "Hello World!";
function print() {
alert(x);
}
print(x); // Hello World!
در شرایطیکه به نمونه بالا دقت فرمایید، ما متغیر x رو باطن تابع هم قرار دادیم. هنگامی یک متغیر با var باطن یک تابع تمجید خواهد شد، اسکوپ این متغیر لوکال است. یعنی تنها درون به عبارتی بدنه تابع قابل دسترس میباشد.
function Func() {
var x = 1;
}
Func();
alert(x); // error: x is not defined
به نمونه تحت توجه نمایید:
var age = "20";
var times = 4;
if (times > 3) {
var age = "15";
}
alert(age) //"15"
هنگامی که در خط سوم شرط ما برقرار میگردد، متغیر FirstNumber مجدد تمجید و مقدارش تغییرو تحول پیدا می نماید. درصورتیکه به طور عمد مقدار آن را تغییرو تحول دهیم، مشکلی نیست. ولی هنگامی متغیر FirstNumber از گذشته توی کد ما تعریف و تمجید گردیده باشد و ما از وجود آن اطلاعی نداشته باشیم، احتمال اینکه کد ما در گیر باگ خواهد شد زیاد میباشد.
let در جاوا اسکریپت
متغیرهایی که با let تعریفوتمجید میگردند، دارنده اسکوپ بلاکی (Block Scoped) میباشند. یعنی اینکه کدها داخل بدنه دربین براکت { } قرار میگیرد. بدین ترتیب متغیرهایی که با let تمجید می گردند، صرفا باطن به عبارتی بدنه یا این که بلاک قابل دسترسی میباشند، به نمونه ذیل اعتنا فرمائید:
let times = 4;
if (times > 3) {
let MyAge = "23";
alert(MyAge); // "23"
}
alert(MyAge) // error: hello is not defined
براین اساس، مشکلاتی رو که در متغیر var نظارت شد، دیگر برای متغیر let به وجود نمی آید.
تفاوت دربین let و var در جاوا اسکریپت
1. خصوصیت تمجید دوباره یا این که ReDecluration
یکیاز مهمترین تفاوت های var و let امکان تعریفوتمجید دوباره متغیر میباشد. زمانی که یک متغیری را تمجید میکنید، اصطلاحا به آن Declurate گفته می گردد و البته هنگامی که به عبارتی متغیر را مجددا تمجید فرمایید یعنی آن را ReDeclurate نموده اید (تعریفوتمجید مجدد). متغیر های تعریف و تمجید گردیده با کلیدواژه var امکان تمجید مجدد داراهستند و می اقتدار مقدار آن را تغییر و تحول بخشید.
اگر که از متغیرها با کلیدواژه let تعریفوتمجید گردیده باشند قابلیت و امکان تمجید کردن مجدد آن نیست و با خطای سینتکس مواجه میشوید.
در صورتیکه در حوزه طراحی وب سایت عمل داشته باشید، بایقین با لهجه جاوا اسکریپت شناخت دارید و همانگونه که میدانید در طراحی سایت در مشهد بیشتر لهجه های اپلیکیشن نویسی مضمون متغیر (variable) وجود دارااست. تمجید کردن variable در هر لهجه متعدد میباشد و با دقت به سینتکس آن گویش معلوم میگردد. همین طور در لهجه جاوا اسکریپت برای تعریف و تمجید کردن متغیر از کلیدواژه های let، var و const استعمال میگردد.
تفاوت هایی میان تعریفوتمجید کردن متغیرها وجود داراست که بابد هنگام استعمال از آنها استحضار داشته باشید. در شرایطیکه که فارغ از هیچ دانشی از آنان به کار گیری نمائید ممکن میباشد در پروژه های گران قدر با مشکلاتی روبرو گردید.
درین نوشتهیعلمی قصد داریم از مهمترین تفاوت متغیرهای var و let در جاوا اسکریپت بپردازیم؛ پس تا انتهای نوشتهیعلمی با ما هم پا باشید.
شناخت با بعضا از اصطلاحات در اپ نویسی
پیش از مقایسه کردن این دو متغیر بهتره با یکسری تا تمجید آشنا گردید.
1. اسکوپ (Scope)
Scope یا این که حوزه، به بخش هایی از کد گفته میگردد که متغیرها در بدنه آن قابل دسترس و استعمال میباشند. از جمله در تابع یا این که کلاس متغیرهای سراسری باطن بدنه جایدارد Scope Global می باشند و متغیرهایی که سوا بدنه وجود داراست وابسته به Local Scope هستند.
2. Hoisting
این کلیدواژه به لهجه پارسی به معنای بالا بردن میباشد و در گویش جاوا اسکریپت مکانیزمی میباشد که سبب ساز میگردد پیش از اجرای نرم افزار، متغیرها و توابع، به بالاترین سطح scope منتقل شوند.
var در جاوا اسکریپت
پیش از اینکه لهجه جاوا اسکریپت ورژن ES6 معرفی خواهد شد، فقط رویه جان دار برای ایجاد کرد متغیرها در جاوا اسکریپت متغیر var بود. استعمال از متغیر var در پروژه های تبارک مشکلاتی بوجود میآورد و به همین عامل یک متغیر جدیدی به اسم let برای تمجید کردن متغیر تولید کردند.
پیش از اینکه درباره متغیر let حرف کنیم، بیاین درباره var بیشتر بدانیم. هنگامی که از متغیر var استعمال میکنید، میاقتدار یا این که در حوزه سراسری و لوکال (محلی) دسترسی داشته باشید. یعنی زمانی که یک متغیر در خارج از یک تابع تعریف و تمجید گردیده باشد در کلیه اپلیکیشن می اقتدار بهره مند شد (حتی باطن تابع).
var x = "Hello World!";
function print() {
alert(x);
}
print(x); // Hello World!
در شرایطیکه به نمونه بالا دقت فرمایید، ما متغیر x رو باطن تابع هم قرار دادیم. هنگامی یک متغیر با var باطن یک تابع تمجید خواهد شد، اسکوپ این متغیر لوکال است. یعنی تنها درون به عبارتی بدنه تابع قابل دسترس میباشد.
function Func() {
var x = 1;
}
Func();
alert(x); // error: x is not defined
به نمونه تحت توجه نمایید:
var age = "20";
var times = 4;
if (times > 3) {
var age = "15";
}
alert(age) //"15"
هنگامی که در خط سوم شرط ما برقرار میگردد، متغیر FirstNumber مجدد تمجید و مقدارش تغییرو تحول پیدا می نماید. درصورتیکه به طور عمد مقدار آن را تغییرو تحول دهیم، مشکلی نیست. ولی هنگامی متغیر FirstNumber از گذشته توی کد ما تعریف و تمجید گردیده باشد و ما از وجود آن اطلاعی نداشته باشیم، احتمال اینکه کد ما در گیر باگ خواهد شد زیاد میباشد.
let در جاوا اسکریپت
متغیرهایی که با let تعریفوتمجید میگردند، دارنده اسکوپ بلاکی (Block Scoped) میباشند. یعنی اینکه کدها داخل بدنه دربین براکت { } قرار میگیرد. بدین ترتیب متغیرهایی که با let تمجید می گردند، صرفا باطن به عبارتی بدنه یا این که بلاک قابل دسترسی میباشند، به نمونه ذیل اعتنا فرمائید:
let times = 4;
if (times > 3) {
let MyAge = "23";
alert(MyAge); // "23"
}
alert(MyAge) // error: hello is not defined
براین اساس، مشکلاتی رو که در متغیر var نظارت شد، دیگر برای متغیر let به وجود نمی آید.
تفاوت دربین let و var در جاوا اسکریپت
1. خصوصیت تمجید دوباره یا این که ReDecluration
یکیاز مهمترین تفاوت های var و let امکان تعریفوتمجید دوباره متغیر میباشد. زمانی که یک متغیری را تمجید میکنید، اصطلاحا به آن Declurate گفته می گردد و البته هنگامی که به عبارتی متغیر را مجددا تمجید فرمایید یعنی آن را ReDeclurate نموده اید (تعریفوتمجید مجدد). متغیر های تعریف و تمجید گردیده با کلیدواژه var امکان تمجید مجدد داراهستند و می اقتدار مقدار آن را تغییر و تحول بخشید.
اگر که از متغیرها با کلیدواژه let تعریفوتمجید گردیده باشند قابلیت و امکان تمجید کردن مجدد آن نیست و با خطای سینتکس مواجه میشوید.

خطاها رایج در طیبندی پستها