JavaScript adalah salah satu bahasa pemrograman paling populer saat ini, tetapi popularitas juga merupakan efek samping dari karakteristik bahasa itu sendiri. Tidak peduli betapa indahnya bahasanya, ribuan programmer masih membuat banyak bug setiap hari. Jangan menertawakan orang lain untuk saat ini, mungkin Anda salah satunya.
Berikut adalah beberapa cuplikan JS yang singkat dan sepenuhnya valid (Anda dapat bereksperimen dengan ini di konsol Anda):
Salinan kode adalah sebagai berikut:
typeof nan === Number '// true
Infinity === 1/0 // true
0.1 + 0.2 === 0.3 // Salah, hal yang sama berlaku untuk tanda kurung yang diawali
"3" + 1 // '31'
"3" - 1 // 2
Apakah Anda masih percaya pada javascript Anda?
1. Nilai minimum JS
Salinan kode adalah sebagai berikut:
Number.min_value> 0; //BENAR
Number.min_value digunakan untuk nilai minimum yang dapat diekspresikan JavaScript, yaitu 5E-324, tetapi itu adalah angka terdekat dalam JS ke 0.
2. Koneksi String
Salinan kode adalah sebagai berikut:
("foo" + "bilah") === "foonan" // true
"Mengapa saya" + typeof + "" // mengapa saya nomor
JS diuraikan menjadi "foo" + ( + "bar"), yang akan mengubah "bar" menjadi angka
3. Fungsi Parseint
Salinan kode adalah sebagai berikut:
parseint ('06 '); // 6
parseint ('08 '); // 0 Perhatikan bahwa versi baru Google telah diperbaiki
parseint (null, 24) === 23 // true
4. Apakah objek nol?
Salinan kode adalah sebagai berikut:
typeof null // objek
null instance dari objek // false
5. Kembali kembali ke konten
Salinan kode adalah sebagai berikut:
fungsi myjson ()
{
Kembali
[
2
]
}
myjson (); // belum diartikan
Konten yang dikembalikan oleh pengembalian harus berada di baris yang sama dengan pengembalian
6. Angka aneh
Salinan kode adalah sebagai berikut:
012 == 12 // Salah
'012' == 12 // Benar
"3" + 1 // '31'
"3" - 1 // 2
0.1 + 0.2 == 0.3 // Salah
0.1 + 0.7 == 0.8 // Salah
0.2 + 0.7 == 0.9 // Salah
9999999999999999999 // 10000000000000000.000
99999999999999999999-1 // 1000000000000000000000
11111111111111111111111111 // 11111111111111111110000
7. Parameter aneh
Salinan kode adalah sebagai berikut:
fungsi halo (apa) {
peringatan (argumen [0]); // Vicky
apa = "dunia";
kembalikan "halo," + argumen [0] + "!";
}
halo ("Vicky"); // "Halo, dunia!"
8. Tanda yang sama yang membuat orang kehilangan kepala
Salinan kode adalah sebagai berikut:
Nan === nan; // PALSU
[] == false; // BENAR
"" == false; // BENAR
null == false; // PALSU
[] ==! [] // Benar
window.window == window // true
window.window === window // false, beberapa browser benar
window == Dokumen // Benar, beberapa browser salah
("0" && {}) == 0 // false
(0 && {}) == 0 // Benar
0 == "0" // Benar
[] == 0 // Benar