Perbezaan: 1. Mari mengisytiharkan pembolehubah, yang nilai dan jenisnya boleh ditukar, manakala const mengisytiharkan pemalar, yang tidak boleh diubah atau ditetapkan semula 2. biarkan pembolehubah tidak perlu dimulakan selepas pengisytiharan Sebagai untuk pemalar const, setelah diisytiharkan, ia mesti dimulakan serta-merta;
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
let dan const ialah dua kata kunci baharu yang diperkenalkan dalam es6 untuk mengisytiharkan pembolehubah Walaupun kami masih boleh menggunakan pembolehubah var yang diketahui secara meluas, kini kami mempunyai dua alat yang lebih berkuasa: let dan const.
Perbezaan antara let dan const dalam es6
① Apa yang diisytiharkan oleh let ialah pembolehubah, dan nilai serta jenisnya boleh ditukar; mengisytiharkan Pemalar yang nilai dan jenisnya tidak boleh diubah.
② Biar pembolehubah tidak perlu dimulakan selepas diisytiharkan, tetapi pemalar const, setelah diisytiharkan, mesti dimulakan serta-merta dan tidak boleh diberikan nilai kemudian.
const i ; // 报错,一旦声明,就必须立即初始化 const j = 5; j = 10; // 报错,常量不可以改变
③ const sentiasa menunjuk ke alamat tetap, manakala let tidak tetap
const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo.prop // 123 // 将 foo 指向另一个对象,就会报错 foo = {}; // TypeError: "foo" is read-only
Dalam kod di atas, foo pemalar menyimpan alamat, dan alamat ini menghala ke objek. Satu-satunya perkara yang tidak boleh diubah ialah alamat ini, iaitu, anda tidak boleh menunjuk foo ke alamat lain, tetapi objek itu sendiri boleh berubah, jadi anda masih boleh menambah sifat baharu padanya.
Nota:
Untuk pembolehubah jenis komposit seperti tatasusunan dan objek, nama pembolehubah tidak menghala ke data, tetapi ke alamat di mana data berada. const hanya menjamin bahawa alamat yang ditunjukkan oleh nama pembolehubah kekal tidak berubah, tetapi tidak menjamin bahawa data pada alamat itu kekal tidak berubah, jadi anda mesti berhati-hati apabila mengisytiharkan pembolehubah jenis komposit sebagai pemalar.
const arr = []; // 报错,[1,2,3]与[]不是同一个地址 arr = [1,2,3]; const arr = []; // 不报错,变量名arr指向的地址不变,只是数据改变 arr[0] = 1; arr[1] = 2; arr[2] = 3; console.log(arr.length); // 输出:3
Mata yang sama antara let dan const dalam es6:
① Hanya sah dalam skop peringkat blok di mana pengisytiharan adalah terletak.
② Tiada kenaikan pangkat pengisytiharan, dan terdapat zon mati sementara, yang hanya boleh digunakan selepas kedudukan yang diisytiharkan.
<script type="text/javascript"> console.log(dadi); let dadi = 569; </script>
Keputusan: Ralat akan dilaporkan
③ Tidak boleh diulang.
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Apakah perbezaan antara let dan const dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!