Rumah > Artikel > hujung hadapan web > Nota kajian Javascript: simbol kesamaan dan simbol kesamaan yang ketat
Bab ini memperkenalkan simbol kesaksamaan dan simbol kesaksamaan yang ketat dalam JavaScript secara terperinci. Rakan yang memerlukan boleh merujuknya.
Javascript mempunyai dua kaedah untuk menentukan sama ada dua nilai adalah sama.
Simbol kesamaan
Simbol kesamaan terdiri daripada dua tanda yang sama: ==
Javascript ialah bahasa yang ditaip lemah. Ini bermakna bahawa simbol kesamaan akan menghantar jenis untuk membandingkan dua nilai.
"" == "0" // false 0 == "" // true 0 == "0" // true false == "false" // false false == "0" // true false == undefined // false false == null // false null == undefined // true " \t\r\n" == 0 // true
Kod di atas menunjukkan hasil penukaran jenis, jadi kita tahu bahawa menggunakan simbol kesamaan == adalah tabiat pengaturcaraan yang buruk. Oleh kerana mekanisme penukaran jenis kompleks dalam Javascript, ralat yang terhasil akan menjadi sukar untuk dikesan.
Selain itu, paksaan jenis juga akan memberi kesan tertentu pada prestasi Contohnya, apabila rentetan dibandingkan dengan nombor, ia akan dipaksa menjadi nombor.
Simbol kesaksamaan yang ketat
Simbol kesaksamaan yang ketat terdiri daripada tiga tanda yang sama: ===
Ia beroperasi sama seperti simbol kesaksamaan, tetapi simbol kesaksamaan yang ketat tidak Akan melakukan operasi penukaran jenis paksa.
"" === "0" // false 0 === "" // false 0 === "0" // false false === "false" // false false === "0" // false false === undefined // false false === null // false null === undefined // false " \t\r\n" === 0 // false
Kod di atas menjadikan kod lebih jelas Jika jenis kedua-dua nilai adalah berbeza, palsu akan dikembalikan secara langsung, yang juga akan meningkatkan prestasi.
Membandingkan Objek
Walaupun == dan === dipanggil simbol kesamaan, apabila salah satu daripada dua nilai yang dibandingkan adalah objek jenis, tingkah laku akan Perbezaan besar.
{} === {}; // false new String('foo') === 'foo'; // false new Number(10) === 10; // false var foo = {}; foo === foo; // true
Di sini, ia bukan lagi sekadar membandingkan sama ada kedua-dua nilai itu sama, ia akan menentukan sama ada kedua-dua nilai merujuk kepada contoh objek yang sama, yang berkelakuan lebih seperti penunjuk dalam C.
Ringkasan
Adalah sangat disyorkan untuk hanya menggunakan simbol kesaksamaan yang ketat ===. Jika kita perlu melakukan penukaran jenis, kita boleh melakukan penukaran jenis eksplisit sebelum perbandingan dan bukannya bergantung pada kaedah cast kompleks Javascript sendiri.
Di atas ialah keseluruhan kandungan bab ini Untuk lebih banyak tutorial berkaitan, sila lawati Tutorial Video JavaScript!