JavaScript'te Fonksiyonlarda Aynı Değişken İsimleri
Fonksiyonun hem dışında hem de içinde
num değişkeni olduğunu varsayalım. Bu durumda,
yerel num değişkeni üzerindeki hiçbir değişiklik
global num değişkenini etkilemez:
let num = 1; // global değişken
function func() {
let num = 2; // yerel değişken
console.log(num);
}
func(); // fonksiyonu çağırır, 2 yazdırır
console.log(num); // 1 yazdırır - global değişken değişmedi
Ancak, yerel num değişkenini
let ile bildirmeyi unutursak, fonksiyon içinde
yerel bir num değişkeni oluşturulmaz,
sadece global değişken değiştirilir:
let num = 1;
function func() {
num = 2; // let yazmayı unuttuk - dış değişkeni değiştiriyoruz
console.log(num);
}
func(); // fonksiyonu çağırır, 2 yazdırır
console.log(num); // 2 yazdırır - değişken değişti
Burada iki durum söz konusu olabilir: ya gerçekten global değişkeni
değiştirmek istiyorduk (o zaman sorun yok) ya da
let'i unuttuk ve yanlışlıkla global değişkeni değiştirdik.
İkinci durum, betiğin öngörülemeyen davranışlarına yol açan
tespit edilmesi zor bir hatadır. Bu nedenle, her zaman
yeni bir değişken tanımlarken onu
let ile bildirin.
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);