Değişken Tanımlama Farklılıkları
3 yıl önce @muhas tarafından oluşturuldu· javascriptJavaScript'te 3 farklı değişken tanımlayabiliriz "Var" , "Let" ve "Const" her birinin kullanım amacı ve çalışma şekli farklıdır;
Var :
Var değişkeni bildiğimiz standart "Global" ve "Local" scope alanlarına bağlı çalışır Global bağlamda oluşturulmuş bir "Var" değişkeni kodun istediğimiz yerinden ulaşılabilir, ancak "Local" bağlamda oluşturulan "Var" değişkenleri oluşturuldukları scope'un dışına çıkamaz.
Örnek:
Var degisken = "Global degisken"; // Global bağlamda tanımlanmış değişken
if(true){ // Local alan başlngıcı - Scope başlangıcıVar degisken2 = "Local degisken"; // Local bağlamda tanımlanmış değişken
}// Local alan sonu - Scope sonu
Console.log(degisken); // degisken Global bağlamda tanımlandığı için hatasız çalışır.
//Console.log(degisken2); /* degisken2 çalıştığı zaman hata verir çünkü: Local bağlamda oluşturulan değişkene local alanın dışında erişmeye çalışıyoruz.*/
Let:
"Let" kullanım olarak neredeyse "Var" ile aynı şekilde çalışır ufak farklılıklar ile o farklılıklar algıladıkları scope alanlarıdır.
"Var" degiskeninin algıladığı scope alanlarına ek olarak "Let" süslü parantezin({ }) açılıp kapandığı her yerde içinde bulunduğu süslü parantezi scope olorak algılar ve o süslü parantezlerin local değişkeni olurlar.
Örnek:
Let degisken = "Global degisken"; // Global bağlamda tanımlanmış değişken
if(true){ // Local alan başlngıcı - Scope başlangıcı
Let degisken2 = "Local degisken"; // Local bağlamda tanımlanmış değişken
{
Let degisken3 = "Local degisken"; // Let süslü parantezlerin dışında erişilemez.
}
Console.log(degisken2); //Aynı süslü parantezlerin(local-Scope alanının) içinde olduğu için hatasız çalışır.// Console.log(degisken3); // Tanımlandığı alanın dışına çıkamadığı için hata verir.
}// Local alan sonu - Scope sonu
Console.log(degisken); // degisken Global bağlamda tanımlandığı için hatasız çalışır.
//Console.log(degisken2);
//Console.log(degisken3);
/* degisken2 ve degisken3 çalıştığı zaman hata verir çünkü: Local bağlamda oluşturulan değişkene local alanın dışında erişmeye çalışıyoruz.*/
Const:
"Const" değişkeni de "Let" ile aynı scope alanlarında çalışır ancak "Const" un özelliği bir sabit olması yani:
tanımlandığı scope alanı içinde tekrardan tanımlanamaz ya da yeni değer ataması yapılamaz.
Örnek:
Const degisken = "Global degisken"; // Global bağlamda tanımlanmış değişken
//degisken = "Yanlıs atama"; //Sabit bir değere atama yapılamaz uygulama hata verir.
if(true){ // Local alan başlngıcı - Scope başlangıcıConst degisken2 = "Local degisken"; // Local bağlamda tanımlanmış değişken//degisken2 = "Yanlıs atama"; //Sabit bir değere atama yapılamaz uygulama hata verir.
{
Const degisken3 = "Local degisken"; // Let süslü parantezlerin dışında erişilemez.//degisken3 = "Yanlıs atama"; //Sabit bir değere atama yapılamaz uygulama hata verir.
}
Console.log(degisken2); //Aynı süslü parantezlerin(local-Scope alanının) içinde olduğu için hatasız çalışır.// Console.log(degisken3); // Tanımlandığı alanın dışına çıkamadığı için hata verir.
}// Local alan sonu - Scope sonu
Console.log(degisken); // degisken Global bağlamda tanımlandığı için hatasız çalışır.
//Console.log(degisken2);
//Console.log(degisken3);
/* degisken2 ve degisken3 çalıştığı zaman hata verir çünkü: Local bağlamda oluşturulan değişkene local alanın dışında erişmeye çalışıyoruz.*/
Var-Let-Const:
Üst scope alanlarında oluşturulan değişkenler alt scope alanlarında erişilebilir ancak alt scope alanlarında tanımlanan değişkenler üst scope alanlarında erişilemez. (Var , Let ve Const'un farklı scope algıları olduğunu unutmayalım.)