Mengapa '1' 1 Menghasilkan '11' Manakala '1' - 1 Keputusan dalam 0 dalam JavaScript?

DDD
Lepaskan: 2024-11-15 09:29:02
asal
586 orang telah melayarinya

Why Does

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan