Merhabalar, bu yazımda sizlere JavaScript’de değişken tanımlamak için kullanılan var anahtar sözcüğü ve ek olarak EcmaScript6 ile birlikte gelen let ve const anahtar kelimelerine değineceğiz.
Şimdi bu 3 anahtar sözcüğü sırasıyla örnekler üzerinden açıklamaya çalışalım.
* var
Kısaca bu keyword ile, daha önce var ile tanımladığımız değişken tekrar tanımlanabilir yani aynı isimle tekrar tekrar tanımlama yapılabilir.
var sayi = 10; console.log(sayi); //Konsola 10 Yazar var sayi = 10; sayi = 20; console.log(sayi); //Konsola 20 yazar // Tekrar tekrar tanımlanabilir var sayi = 10; var sayi = 20; var sayi = 30; console.log(sayi); //Konsola 30 yazar
if (true) { var sayi = 10; console.log("Block Scope:", sayi); // Konsola 10 yazar } console.log("Global Scope:", sayi); // Konsola 10 yazar. Değişken var olmaya devam etti.
* let
Bu keyword ile, daha önce let ile tanımladığımız değişken tekrar tanımlanamaz yani let keywordü ile tanımlanan değişkenler aynı isimle sadece bir defa tanımlanabilir.
let sayi = 10; console.log(sayi); // Konsola 10 yazar let sayi = 10; sayi = 20; console.log(sayi); // Konsola 20 yazar
let sayi = 10; let sayi = 20; // Tekrar tanımlanamaz console.log(sayi); //Hata verir : "Uncaught SyntaxError: Identifier 'sayi' has already been declared"
if (true) { let sayi = 10; // Sadece burada var olur console.log(sayi); //Konsola 10 yazar } console.log(sayi); //Hata verir : "Uncaught ReferenceError: sayi is not defined"
* const
Bu keyword de ise, tanımlarken değer atamak zorundayız, aynı isimle tekrar tanımlama yapılamaz, buna ek olarak tanımladığımız değer daha sonra değiştirilemez ancak referans kullanılarak değiştirilebilir.
const sayi = 10; console.log(sayi); // Konsola 10 yazar const sayi = 10; const sayi = 20; // Hata console.log(sayi); //Uncaught SyntaxError: Identifier 'sayi' has already been declared
const sayi = 10; sayi = 20; // Hata, daha sonra değiştirilemez console.log(sayi); //Uncaught TypeError: Assignment to constant variable.
const sayi = [1,2,3,4]; sayi.push(5); console.log(sayi); //Konsola [1, 2, 3, 4, 5] yazılır, değeri referans yollardan değiştirilebildi.
Keywordlerin kullanımıyla ilgili farklı farklı görüşler var fakat bu konuda Mathias Bynens‘in görüşü oldukça mantıklı duruyor.
* Mümkün olduğunca const kullan
* Sadece değişkenin değerini değiştirme ihtiyacın var ise let kullan
* Eğer ES6 yazıyorsan var kullanma
Kısaca anlatacaklarım bu kadar arkadaşlar, umarım faydalı bir yazı olmuştur.