Baru-baru ini, ketika melihat kode front-end asing, saya menemukan bahwa fitur-fitur baru ES6 telah menjadi sangat populer, terutama Let, dan aplikasinya sangat umum.
Meskipun penggunaan LET sama dengan VAR, ia telah meningkat banyak dalam hal sintaks dan semantik dan kinerja. Mari kita bandingkan dari dua aspek di bawah ini
Sintaks >>
untuk (var i = 0; i <2; i ++) {console.log ('luar i:'+i); untuk (var i = 0; i <2; i ++) {console.log ('bagian dalam i:'+i);}}Ini adalah loop bersarang yang umum, yang semuanya mendefinisikan variabel I untuk menghitung, dan hasil eksekusi adalah sebagai berikut:
Luar I: 0
Batin I: 0
Batin I: 1
Anda dapat melihat bahwa loop luar terganggu karena nilai I dimodifikasi oleh loop dalam. Solusi yang biasa adalah menggunakan variabel lain di loop dalam, tetapi dapat menyebabkan kesalahan jika Anda tidak sengaja
Sekarang ubah var menjadi
untuk (biarkan i = 0; i <2; i ++) {console.log ('luar i:'+i); untuk (biarkan i = 0; i <2; i ++) {console.log ('Inner i:'+i);}}Hasil outputnya adalah:
Luar I: 0
Batin I: 0
Batin I: 1outer I: 1
Batin I: 0
Batin I: 1
Ini normal, lapisan dalam dan luar tidak berpengaruh, karena mari membuat ruang lingkup variabel hanya di dalam bloknya sendiri.
Contoh 2
console.log (a); var a = 'hai';
Hasil output tidak terdefinisi. Eksekusi log (a) sebelum mendeklarasikan variabel. Mengapa tidak ada kesalahan? Karena efek aktual dari dua baris kode ini adalah:
var a; console.log (a); a = 'hai';
Saat parsing kode JS, deklarasi variabel akan diminta ke posisi awal, yang juga membingungkan
Setelah menggunakan Let sebagai gantinya, tidak akan ada masalah, dan kesalahan akan dilaporkan secara langsung.
console.log (a); // ReferenceError Uncaught: A tidak didefinisikan a = 'hai';
Tes Kinerja Sederhana
var start = + date baru (); untuk (var i = 0; i <1000000; i ++) {var num = 123; var str = 'abc'; var obj = {key: 'value'}; var arr = ['bill', 'dell'];} var end = + tanggal baru (); konsol.log (end - start);Hasil eksekusi rata -rata di bawah Firefox adalah 53ms
Ubah untuk membiarkan
'Gunakan strict'var start = + new date (); for (var i = 0; i <1000000; i ++) {let num = 123; let str =' abc '; let obj = {key:' value '}; biarkan arr = [' bill ',' dell '];} var end = + new date (); console.log (end - end - end -' dell '];Hasil rata -rata adalah 5ms, dan speedup jelas
Di atas adalah keunggulan tata bahasa baru dari JavaScript6 Let diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!