Saya tahu bahwa deklarasi ulang variabel membawa kita ke kesalahan sintaksis dan itu ilegal tetapi JavaScript memiliki konsep anehnya sendiri tentang deklarasi ulang. tolong saya butuh bimbingan tentang hal ini.

1).Saya mencoba memahami ini ketika kami menggunakan variabel var dalam JavaScript, variabel ini dapat dideklarasikan ulang. 2).Nilai yang ditetapkan terakhir akan diperbarui ke pengenal var. 3).Saya pergi melalui beberapa sumber, saya mendapatkan bahwa v8engine tidak mendeklarasikan ulang var itu hanya menetapkan nilai terbaru untuk pengenal var yang sama, ok untuk mengetahui ini sempurna. 4).Jika demikian, mengapa fleksibilitas deklarasi ulang tidak diberikan pada kata kunci let dan const dalam JavaScript. 5).Apa yang terjadi di balik hal-hal rumit ini, tolong jelaskan padaku

1
sachin developer 12 Mei 2021, 06:09

1 menjawab

Jawaban Terbaik

Kemampuan untuk mendeklarasikan ulang variabel dengan nama yang sama dalam lingkup yang sama membingungkan bagi seseorang yang membaca skrip yang mencoba memahaminya. Jika Anda mendeklarasikan variabel pada baris tertentu dalam kode, dan kemudian mendeklarasikannya lagi, kemungkinan besar itu salah ketik atau kecelakaan, karena tidak masuk akal - jika Anda ingin menetapkan ulang variabel, cukup tetapkan variabel variabel tanpa mendeklarasikan ulang.

function getName(name) {
  // What did the script-writer mean to do here?
  // Did they forget that there's an argument called name already?
  var name = prompt('What is your name?');
  console.log('hi', name);
}
getName();

Mendeklarasikan ulang dalam lingkup yang sama secara teknis diizinkan dengan var, tetapi itu hanya karena begitulah cara kerja sejak awal; mengubahnya menjadi ilegal sekarang akan merusak kompatibilitas mundur, yang tidak dilakukan< /a>.

let dan const sengaja dirancang agar tidak dapat dideklarasikan ulang untuk menghindari kebingungan semacam ini. Kode yang tidak terlalu membingungkan bisa dibilang lebih penting daripada fleksibilitas. Ketika aturan bahasa terlalu fleksibel, pengkodean bisa menjadi jauh lebih sulit. (lihat == untuk contoh...)

Bahkan jika memungkinkan, mendeklarasikan ulang variabel const secara khusus tidak masuk akal, karena const, menurut definisi, tidak dapat ditetapkan ulang.

1
CertainPerformance 12 Mei 2021, 03:14