Rumah  >  Artikel  >  hujung hadapan web  >  Nota kajian Javascript: simbol kesamaan dan simbol kesamaan yang ketat

Nota kajian Javascript: simbol kesamaan dan simbol kesamaan yang ketat

PHPz
PHPzasal
2016-05-16 16:30:401727semak imbas

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!

Kenyataan:
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