Rumah > Artikel > hujung hadapan web > Mengapa "1" 1 Menghasilkan "11" Manakala "1" - 1 Keputusan dalam 0 dalam JavaScript?
Pengendalian Rentetan dan Operator Nombor JavaScript yang Unik
Dalam JavaScript, gelagat pengendali aritmetik seperti dan - boleh berbeza-beza bergantung pada jenis data terlibat. Ini boleh membingungkan terutamanya apabila bekerja dengan rentetan dan nombor.
Percanggahan antara Penggabungan Rentetan dan Penolakan Angka
Pertimbangkan kod berikut:
console.log("1" + 1); console.log("1" - 1);
Anehnya, baris pertama mencetak "11" manakala baris kedua mencetak 0. Tingkah laku yang kelihatan bercanggah ini boleh dijelaskan dengan memahami pengendalian JavaScript terhadap pengendali ini.
Penggabungan Rentetan (dengan )
Apabila pengendali digunakan dengan rentetan, ia melakukan penggabungan rentetan. Dalam contoh kami, "1" ialah rentetan, jadi JavaScript menukar angka 1 kepada rentetan juga. Ini menghasilkan penyatuan "1" dan "1", menghasilkan "11".
Penolakan Berangka (dengan -)
Tidak seperti penyambungan rentetan, penolakan angka ialah hanya terpakai kepada nombor. "1" ialah rentetan dalam contoh kami, jadi JavaScript cuba menukarnya kepada nombor sebelum melakukan penolakan. Walau bagaimanapun, rentetan tidak diiktiraf sebagai nombor yang sah dalam JavaScript. Akibatnya, "1" dianggap sebagai 0 semasa penolakan, menghasilkan "1" - 1 = 0.
Kesimpulan
Pengendalian rentetan dan pengendali nombor JavaScript boleh berlawanan dengan intuisi kadang-kadang. Adalah penting untuk memahami peraturan yang mengawal pengendali ini, terutamanya apabila bekerja dengan jenis data bercampur, untuk mengelakkan tingkah laku yang tidak dijangka dalam kod anda.
Atas ialah kandungan terperinci Mengapa "1" 1 Menghasilkan "11" Manakala "1" - 1 Keputusan dalam 0 dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!