Bu eğiticide, örnekler yardımıyla JavaScript'te let ve var arasındaki fark hakkında bilgi edineceksiniz.
JavaScript, anahtar kelimeler hem var
ve let
beyan değişkenler için kullanılır.
let
Anahtar 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 let
ve 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 var
herhangi 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 let
yalnı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, if
blok ifadesinin içinde bildirilir. b blok kapsamlı olacak ve yalnızca if
bloğun içinden erişilebilir .
Bu nedenle, b if
bloğ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 var
ve için işlev kapsamına alınacaktır let
.
Değişkenleri yeniden bildirmeye izin vermeyelim
1. ile bildirilen bir değişken var
yeniden 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 var
farklı 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 let
farklı 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 var
bir 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, for
dö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 var
ve let
aynı ş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.