javascript - [Tentukan dengan cepat sama ada tatasusunan kosong] []==false Mengapa ia kembali benar?
習慣沉默
習慣沉默 2017-07-05 10:51:52
0
6
1247
console.log([]==false); //输出为true

console.log(['1']==false);//输出为false

Ia boleh dilihat bahawa ini boleh dengan cepat menentukan sama ada tatasusunan itu kosong, tetapi terdapat beberapa keraguan dalam prinsipnya.
Diketahui:

1. Operator kesamarataan "==": tukar dahulu dan kemudian bandingkan. Jika salah satu operan ialah boolean, ia ditukar kepada nilai berangka sebelum membandingkan untuk kesamaan False ditukar kepada 0 dan benar ditukar kepada 1.

2 Jika satu operan ialah objek dan satu lagi operan bukan, panggil kaedah valueOf() objek dan gunakan nilai jenis asas yang diperoleh untuk penukaran.

Jadi bahagian kanan []==fasle akan ditukar kepada 0. Bagaimana dengan sebelah kiri? Bagaimana ia ditukar?

習慣沉默
習慣沉默

membalas semua(6)
黄舟

Ini untuk anda, jadual perbandingan javascript: Operator Perhubungan dan Kesaksamaan

typecho

http://tech.youzan.com/javasc...
Anda akan faham selepas membacanya

大家讲道理

Oleh kerana ia akan ditukar kepada nilai Boolean ​​untuk perbandingan,
[]==false
=>
true == false  //false

刘奇

Tukar kepada nombor 0 dahulu, kemudian bandingkan.

世界只因有你

Adalah masuk akal untuk menggunakan kaedah ini untuk menilai bahawa tatasusunan itu kosong, bukan?

if([]){
    alert('1111');
}

Saya fikir ia tidak akan melantun, tetapi ternyata. Dalam kebanyakan kes, ia masih dinilai dengan panjang. Sudah tentu, panjang juga merupakan perangkap apabila menilai bilangan elemen!

滿天的星座

Hanya boleh dikatakan bahawa mekanisme dalaman js ialah tatasusunan kosong adalah palsu, jadi false==false adalah benar! Kemudian tatasusunan bukan kosong secara semula jadi ditukar kepada benar, dan benar == salah adalah tidak benar! Adakah terdapat sesuatu yang sukar untuk difahami?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!