1. Saat menggabungkan string di browser versi yang lebih rendah (seperti IE6, IE7, dll.), menggunakan metode join array jauh lebih efisien daripada menggunakan tanda + untuk menghubungkan (seperti ['aaa', 'bbb', 'ccc'].join () lebih efisien daripada 'aaa'+'bbb'+'ccc');
2. Susunan:
Pop lebih efisien dibandingkan shift, dan push lebih efisien dibandingkan unshift. Hal ini penting untuk merancang struktur tumpukan biner. Yang terbaik adalah menempatkan elemen terbesar atau terkecil di akhir array.
3. Cara terbaik adalah menggunakan operasi shift saat membulatkan angka:
1.1 >> 0;
4. Gunakan besaran langsung untuk membuat Array dan Objek:
var a = [];
var o = {};
5. Jangan menumpuk terlalu banyak level objek untuk mengurangi pencarian objek:
Jangan gunakan abcde, metode desain ini mendapatkan objek e.
6. Nilai yang sesuai dengan nilai kunci, dibandingkan dengan switch case, nilai kunci yang sesuai, lebih efisien daripada switch case, telah diuji oleh berbagai browser, Anda dapat membaca artikel tentang perbandingan ini, eksperimen kecil javascript;
7. Kalau pakai jq juga ada perbandingan antara $('xxxx').empty().append('xxxxxxx'); dan $('xxxxx').html('xxxxx');, hasilnya $ ('xxxx').empty().append('xxxxxxx'); alamat artikelnya adalah eksperimen kecil jQuery;
8. Lingkaran
Dalam JavaScript, kita dapat menggunakan tiga loop: for(;;), while(), dan for(in). Di antara ketiga loop ini, for(in) sangat tidak efisien karena memerlukan kueri kunci hash dapat Ini harus digunakan sesedikit mungkin. Performa for(;;) dan while loop pada dasarnya dapat dikatakan setara (bila digunakan dalam penggunaan sehari-hari).
Jika variabel perulangan bertambah atau berkurang, jangan berikan nilai hanya pada variabel perulangan. Gunakan operator ++ atau -- yang disarangkan saat terakhir kali dibaca.
Jika ingin membandingkan dengan panjang array, sebaiknya masukkan atribut panjang array ke dalam variabel lokal terlebih dahulu untuk mengurangi jumlah query.
9. Variabel lokal dan variabel global
Kecepatan akses variabel lokal lebih cepat dibandingkan variabel global, karena variabel global sebenarnya adalah anggota objek global, sedangkan variabel lokal ditempatkan pada stack fungsi.
10. Jangan gunakan Eval
Menggunakan eval sama dengan memanggil kembali mesin interpretasi untuk menjalankan konten saat runtime, yang membutuhkan banyak waktu. Saat ini, templat fungsi dapat diimplementasikan menggunakan penutupan yang didukung oleh JavaScript (untuk detail tentang penutupan, silakan lihat konten yang relevan tentang pemrograman fungsional);
11. Penggabungan string
Jika Anda menambahkan string, yang terbaik adalah menggunakan operasi s+=anotherStr daripada s=s+anotherStr;
12. Ubah angka menjadi string dan gunakan "" + 1. Meski terlihat agak jelek, sebenarnya ini yang paling efisien, dari segi performa:
("" +) > String() > .toString() > String baru()
Artikel ini sebenarnya agak mirip dengan "kuantitas langsung" di bawah ini. Cobalah untuk menggunakan operasi internal yang dapat digunakan pada waktu kompilasi agar lebih cepat daripada operasi pengguna yang digunakan pada waktu proses.
String() adalah fungsi internal, sehingga sangat cepat, sedangkan .toString() perlu menanyakan fungsi dalam prototipe, sehingga tidak secepat new String() digunakan untuk mengembalikan salinan persisnya;
13. Ubah angka floating point menjadi integer. Ini lebih rawan kesalahan. Banyak orang suka menggunakan parseInt(). Faktanya, parseInt() digunakan untuk mengubah string menjadi angka, bukan antara angka floating point dan integer Matematika.lantai() atau Matematika.bulat().
14. Operasi penjelajahan string
Untuk melakukan operasi perulangan pada string, seperti penggantian dan pencarian, sebaiknya digunakan ekspresi reguler, karena kecepatan perulangan JavaScript itu sendiri relatif lambat, dan pengoperasian ekspresi reguler adalah API yang ditulis dalam bahasa C, dan kinerjanya sangat baik. ;
15. pengatur waktu
Jika Anda menargetkan kode yang terus berjalan, Anda sebaiknya tidak menggunakan setTimeout, tetapi setInterval. setTimeout perlu mengatur ulang pengatur waktu setiap saat;
Memperbarui..., harap pantau terus!