تفاوت let و var

1 ماه پیش توسط فریبرز شالقونی پور آپدیت شد
آفلاین
user-avatar
omid ( 7 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام راجب تفاوت این دو میخاستم بدونم . سرچ کردم ولی انگلیسیم در حدی نبود بتونم کامل جواب سوال رو پیدا کنم .
و اینکه بهترین روش اعلام متغیر ها چیه!
یعنی اول اعلان کنیم بعد استفاده یا در حال استفاده و موقع نیاز در هر جایی که شد اعلان کنیم ؟

آفلاین
user-avatar
طاها تقدس ( 1490 تجربه )
4 سال پیش
تخصص : طراح رابط و تجربه کاربری

لینک کوتاه اشتراک گذاری

1

بهترین و جدیدترین روشش استفاده از const و let هست، بیشترین تفاوت let و var هم توی global بودن یا نبودن در بعضی موارد مثل حلقه‌هاست. دوره ES6 که توی سایت هست کامل توضیح داده شده این‌ها.

آفلاین
user-avatar
محمد امیر محمدی ( 2723 تجربه )
4 سال پیش
تخصص : برنامه نویس لاراول و ویو جی اس

لینک کوتاه اشتراک گذاری

2
function loop(arr) {
    // i IS NOT known here
    // j IS NOT known here

    for( var i = 0; i < arr.length; i++ ) {
        // i IS known here
    }

    // i IS known here
    // j IS NOT known here

    for( let j = 0; j < arr.length; j++ ) {
        // j IS known here
    }

    // i IS known here
    // j IS NOT known here
}
آفلاین
user-avatar
محمد امیر محمدی ( 2723 تجربه )
4 سال پیش
تخصص : برنامه نویس لاراول و ویو جی اس

لینک کوتاه اشتراک گذاری

3

به این مثال خوب دقت کنید جوابشو میگیرید

آفلاین
user-avatar
FARZIN ( 33684 تجربه )
1 ماه پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

1

سلام var دیگه خیلی کم استفاده میشه و این روزا از let , const استفاده میکنند ولی تفاوت این دو در دسترسی به آنهاست با var میتونیم در خارج از بلاک هم به اون دسترسی پیدا کنیم که این اشتباست و با let این مشکل حل میشود و دیگه نمیتونیم به اون در خارج از بلاک {} دسترسی پیدا کنیم .

آفلاین
user-avatar
فریبرز شالقونی پور ( 16636 تجربه )
1 ماه پیش
تخصص : طراح و برنامه نویس حوضه وب

لینک کوتاه اشتراک گذاری

1

تفاوت var با let و کانست تو این هستش که اگر شما از var استفاده بکنید تقریبا در تمام کل یک فایل جاوا اسکریپتی میتونید اون متغییر و درخواست بدید و از مقادیرش استفاده کنید البته استثنائاهایی هم وجود داره

ولی let به این صورت نیست ، اگر شما بین دوتا اکولات {} از let استفاده کنید دیگه خارج از این اکولات ها نمیتونین به مقدار let دسترسی پیدا کنید

const هم یک نوع وریبل هست که تغیررات خاصی نمیشه توش انجام داد ولی در کل مجموعه میشه فراخوانیش کرد

به مثال زیر دقت کن

let

for(let i=0 ; i<10 ; i++){
  // something to do  
} 
console.log(i) //undefined
//----------------------------------------------
for(var i=0 ; i<10 ; i++){
  // something to do  
} 
console.log(i) //10

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

ولی در حلقه دوم که با Var تعریف شده بود ، متغیر خارج از حلقه قابل دسترس بود و میتونی خارج از حلقه ازش لاگ بگیری و میبینی که اخرین عددی که تو حلقه پیش رفته برات به نمایش در میاد ، ختم کلوم let خارج از اکولات {} (میتونه تابع ، کلاس ، حلقه و ... باشه ) قابل دسترس نیست اما var تقریبا قابل دسترسه و البته let بهتره چون تکرار نام ها اذیتمون نمیکنه

و در اخر const هم که کلا متغیر نیست یک ثابت هست یعنی قابل تغییر نیست
و
البته یک ثابت واقعی نیست و استثنائاهایی هم وجود داره
به مثال زیر دقت کن

  const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error 
 var x = 10;
// Here x is 10
{
  const x = 2;
  // Here x is 2
}
// Here x is 10 

البته کانست هایی که پروتایپشون ابجکت باشه یه سری تغییرات جزئی رو پذیرا هستن

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.