JavaScript izin Vs var (Örneklerle)

Bu eğiticide, örnekler yardımıyla JavaScript'te let ve var arasındaki fark hakkında bilgi edineceksiniz.

JavaScript, anahtar kelimeler hem varve letbeyan değişkenler için kullanılır.

letAnahtar kelime olarak bilinen JavaScript sonraki sürümünde tanıtıldı ES6 (ES2015) . Ve değişkenleri bildirmenin tercih edilen yolu budur.

JavaScript izin Vs var

İşte letve arasındaki farklara genel bir bakış var.

İzin Vermek var
let blok kapsamlı. var işlev kapsamlıdır.
let değişkenleri yeniden bildirmeye izin vermez. var değişkenleri yeniden bildirmeye izin verir.
Kirada kaldırma meydana gelmez. Kaldırma var.

JavaScript, Vs'nin Yerel Kapsamda değişmesine izin verir

var işlev kapsamlı

İle bir işlev içinde bildirilen değişken, bir işlev içinde varherhangi bir yerde kullanılabilir. Örneğin,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

Yukarıdaki programda a değişkeni ile bildirilmiştir var. A değişkeni, işlevin herhangi bir yerinde kullanılabilir greet.

blok kapsamlı olsun

İle bildirilen değişkene letyalnızca bir kod bloğu içinden erişilebilir. Örneğin,

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

Çıktı

 merhaba dünya Yakalanmamış Referans Hatası: b tanımlı değil

Yukarıdaki programda, a değişkeni işlev içinde bildirilir ve işlevin içinde herhangi bir yerden erişilebilir (a işlev kapsamlı hale gelir).

Bununla birlikte, b değişkeni, ifblok ifadesinin içinde bildirilir. b blok kapsamlı olacak ve yalnızca ifbloğun içinden erişilebilir .

Bu nedenle, b ifbloğunun dışından erişmeye çalıştığınızda , bir hata oluşur (programda yukarıda gösterildiği gibi).

Not : Bir işlev içinde bildirilen değişkenler, hem varve için işlev kapsamına alınacaktır let.

Değişkenleri yeniden bildirmeye izin vermeyelim

1. ile bildirilen bir değişken varyeniden bildirilebilir . Örneğin,

 var a = 5; // 5 var a = 3; // 3

letİle bildirilen bir değişken , aynı blok veya aynı kapsam içinde yeniden bildirilemez . Örneğin,

 let a = 5; let a = 3; // error 

Çıktı

 Yakalanmamış SyntaxError: Tanımlayıcı 'a' zaten bildirilmiş

2. Bir değişkeni varfarklı bir kapsam veya blokta yeniden bildirmek , dış değişkenin değerini de değiştirir. Örneğin,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

Bir değişkeni letfarklı bir kapsam veya blokta yeniden bildirmek, bu değişkeni farklı bir değişken olarak ele alır. Ve dışarıdaki bir değişkenin değeri değişmez. Örneğin,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. ile bildirilen bir değişken varbir döngüde kullanıldığında, bu değişkenin değeri değişir. Örneğin,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

Yukarıdaki programda, fordöngü a değişkenini yeniden bildirir. Bu nedenle sonunda değeri 3a olarak değiştirilir .

Let ile bildirilen bir değişken bir döngüde kullanıldığında, değişkenin değeri değişmez. Örneğin,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

In the above program, for loop treats variable a as a different variable than the one declared above. And the scope of that variable is only inside the for loop. Hence the value of variable a remains 2 at the end.

let Doesn't Allow Hoisting

The variables declared with var are hoisted to the top of the scope of the program. For example,

 console.log(a); var a; // undefined (not an error)

The keyword let does not allow hoisting. For example,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

If you want to learn more about hoisting, visit JavaScript Hoisting.

let and var Browser Support

Most of the modern browsers support the use of let. However, some browsers do not fully support let.

To learn more, visit JavaScript let browser support.

Not : Genel kapsam durumunda, hem varve letaynı şekilde davranacaktır. Örneğin,

 var a = 5; // 5

A değişkeni genel kapsamlı olacak ve programın herhangi bir yerinden erişilebilir.

 let a = 5; // 5

A değişkeni genel kapsamlı olacak ve programın herhangi bir yerinden erişilebilir.

Ilginç makaleler...