Rumah > Artikel > hujung hadapan web > Apakah Perbezaan Antara let, var, dan const dalam JavaScript : Penjelasan Mudah
Dalam JavaScript, anda boleh mengisytiharkan pembolehubah menggunakan let, var dan const. Kata kunci ini mungkin kelihatan serupa, tetapi kata kunci tersebut mempunyai perbezaan utama yang boleh memberi kesan ketara kepada tingkah laku kod anda. Dalam artikel ini, kami akan menerangkan perbezaan antara mereka dan membantu anda memahami masa untuk menggunakan setiap satu.
var | let | const |
---|---|---|
Introduced in: Has been available since the beginning of JavaScript. | Introduced in: Added in ES6 (ECMAScript 2015). | Introduced in: Added in ES6 (ECMAScript 2015). |
Scope: Function-scoped. A var variable is accessible throughout the function where it’s declared. | Scope: Block-scoped. A let variable is only accessible within the block {} where it’s declared. | Scope: Block-scoped, just like let. |
Hoisting Behavior: var variables are hoisted and can be used before they are declared (though they will be undefined). | Hoisting Behavior: let variables are hoisted but not initialized, so you cannot use them before the declaration. | Hoisting Behavior: Similar to let, const variables are hoisted but not initialized, so they must be declared before use. |
Re-declaration: You can re-declare a var variable in the same scope without any errors. | Re-declaration: You cannot re-declare a let variable in the same scope. | Re-declaration: You cannot re-declare a const variable, similar to let. |
Reassignment: Variables declared with var can be reassigned. | Reassignment: Variables declared with let can also be reassigned. | Reassignment: Variables declared with const cannot be reassigned; they are constant. |
Berikut ialah contoh yang menunjukkan cara var, let dan const berkelakuan berbeza:
function userDetails(username) { if (username) { console.log(salary); // Output: undefined (due to hoisting) console.log(age); // Error: ReferenceError: Cannot access 'age' before initialization console.log(country); // Error: ReferenceError: Cannot access 'country' before initialization let age = 30; var salary = 10000; const country = "USA"; // Trying to reassign const // country = "Canada"; // Error: Assignment to constant variable. } console.log(salary); // Output: 10000 (accessible due to function scope) console.log(age); // Error: age is not defined (due to block scope) console.log(country); // Error: country is not defined (due to block scope) } userDetails("John");
Penjelasan Contoh:
Mengangkat dengan var: Pembolehubah gaji yang diisytiharkan dengan var dinaikkan ke bahagian atas fungsi. Inilah sebabnya anda boleh mengaksesnya sebelum pengisytiharannya, walaupun nilainya tidak ditentukan sehingga tugasan berlaku.
Mengangkat dengan let dan const: Kedua-dua pembolehubah umur dan negara juga dinaikkan, tetapi tidak seperti var, pembolehubah itu tidak dimulakan. Ini bermakna anda tidak boleh mengaksesnya sebelum pengisytiharan mereka, mengakibatkan ReferenceError.
Skop Blok: Selepas blok if, gaji masih boleh diakses kerana var mempunyai skop fungsi. Walau bagaimanapun, kedua-dua umur (diisytiharkan dengan let) dan negara (diisytiharkan dengan const) adalah skop blok, jadi mereka tidak boleh diakses di luar blok.
Penugasan semula dengan const: Pembolehubah yang diisytiharkan dengan const tidak boleh ditetapkan semula. Dalam contoh, cuba menukar nilai negara akan mengakibatkan ralat.
Gunakan let apabila anda memerlukan pembolehubah yang boleh ditugaskan semula tetapi hanya boleh diakses dalam blok kod tertentu. Ini berguna untuk pembilang gelung, bersyarat atau mana-mana pembolehubah yang akan diubah suai tetapi tidak perlu wujud di luar bloknya.
Gunakan var dalam situasi di mana anda memerlukan pembolehubah yang sepatutnya boleh diakses sepanjang fungsi, walaupun ini kurang biasa dalam JavaScript moden kerana pengenalan let dan const.
Gunakan const apabila anda ingin mengisytiharkan pembolehubah yang tidak boleh ditetapkan semula. Ini sesuai untuk pemalar, seperti nilai konfigurasi atau data tetap, yang sepatutnya kekal sama sepanjang kod anda.
Memahami perbezaan antara var, let dan const adalah penting untuk menulis JavaScript yang moden dan cekap. let dan const biasanya lebih diutamakan berbanding var dalam kod moden, dengan const menjadi pilihan utama untuk pembolehubah yang tidak sepatutnya ditugaskan semula. Dengan memilih kata kunci yang betul, anda boleh menulis kod yang lebih jelas dan boleh dipercayai serta kurang terdedah kepada pepijat.
Dengan menggunakan const untuk nilai yang tidak sepatutnya berubah, biarkan pembolehubah yang mungkin berubah dalam blok dan mengelakkan var dalam kebanyakan kes, kod JavaScript anda akan menjadi lebih selamat dan lebih mudah untuk diurus.
Atas ialah kandungan terperinci Apakah Perbezaan Antara let, var, dan const dalam JavaScript : Penjelasan Mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!