string dan angka boolean
Tipe JavaScript akan dikonversi ke jenis yang sesuai sesuai dengan penugasan.
var str = ""; alert (typeof (str)); // stringstr =; waspada (typeof (str)); // numbervar jumlah = str +; //+program dua angka untuk menambahkan peringatan (jumlah); //
Ini lebih jelas, dan nilainya dapat dihitung sekilas. Tapi silakan lihat konversi berikut
var sum = "" + ""; alert (typeof (sum)); // stringalert (sum); // var sum = "" +; alert (typeof (sum)); // stringalert (sum); // var sum = + ""; peringatan (typeof (sum)); // stringalert (typeof (sum)); // var div = ""/""; waspada (typeof (area)); // numberAlert (typeof (sub)); // var sub = "" - ""; waspada (typeof (sub)); // numberAlert (sub); // var div = ""/""; waspada (typeof (area)); // numberalert (typeof (div)); // numberalert (div); //.
Jika tipe angka dan tipe string "+", nomor tersebut akan dikonversi langsung menjadi string
"+" Di atas cukup istimewa. Jika memang - , * , / ; Lalu jenis apa yang akan dikonversi menjadi pada akhirnya?
Area var = "" * "a"; waspada (typeof (area)); // numberalert (area); // nanvar sub = "a" - ""; waspada (typeof (sub)); // nansub = "a" - peringatan (typeof (sub)); // nansub = "a" -; peringatan (typeof (sub));/nanvar); (Div)); // nandiv = "a"/; waspada (typeof (div)); // nan
Seperti di atas -, *, / adalah aritmatika dalam angka. String dan angka tidak dapat melakukan perhitungan, sehingga nilainya adalah NAN. Jenis nomor.
var a = true; alert (typeof (a)); // booleanvar b = "true"; var ab = a + b; waspada (typeof (ab)); // stringalert (ab); // truetruealert (a == b); // false
boolean dan string, tipe boolean secara otomatis dikonversi menjadi string "true", tetapi mengapa tidak sama dengan b
Mari kita lihat contoh ini:
var c = ""; alert (typeof (c)); // stringvar d =; waspada (typeof (d)); // numberAlert (c == d); // true
Prinsip konversi diberikan di sini: (untuk referensi)
1. Jika operan adalah boolean, konversinya ke nilai numerik sebelum membandingkan kesetaraan - false dengan 0 dan benar menjadi 1;
2. Jika satu operan adalah string dan operator lainnya adalah nilai numerik, maka string dikonversi ke nilai numerik sebelum membandingkan kesetaraan;
3. Jika satu operan adalah objek dan operan lainnya tidak, maka metode nilai () dari objek dipanggil dan nilai tipe dasar yang diperoleh dibandingkan sesuai dengan aturan sebelumnya.
Kemudian ketika membandingkan string dan tipe boolean, itu akan menjadi:
Konversi ini terjadi: Boolean True First dikonversi ke nomor 1, kemudian dikonversi menjadi string "1", dan kemudian membandingkan. Hasilnya harus salah.
NULL dan NOMOR STRING BOOLEAN Tak Terdefinisi
var a = null; waspada (typeof (a)); // objectvar b = "hello"; var ab = a + b; peringatan (typeof (ab)); // stringalert (ab); // nullhellovar c =; var ac = a * c; waspada (typeof (ac)); // numberAlert (ac); // if (a) // false {} else {alert ("false");} var u; alert (a == u); //BENARDari contoh yang diberikan, kita dapat melihat:
NULL secara otomatis dikonversi ke string "null" dalam string, mewakili angka 0 dalam angka, yang setara dengan false dalam penilaian logis, dan sama dengan tidak terdefinisi ketika nilai dinyatakan. Perhatikan bahwa == bukannya ===.
Meskipun == mengonversi tipe perbandingannya saat membandingkan, jenis variabelnya tidak berubah karena ==.