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:

javascriptlet 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:

javascriptlet 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.

Задание 1

Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

console.log(num);
Задание 2

Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);