Rumah  >  Soal Jawab  >  teks badan

javascript - [Tentukan dengan cepat sama ada tatasusunan kosong] []==false Mengapa ia kembali benar?

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?

習慣沉默習慣沉默2663 hari yang lalu1249

membalas semua(6)saya akan balas

  • 黄舟

    黄舟2017-07-05 10:53:52

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

    balas
    0
  • typecho

    typecho2017-07-05 10:53:52

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

    balas
    0
  • 大家讲道理

    大家讲道理2017-07-05 10:53:52

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

    balas
    0
  • 怪我咯

    怪我咯2017-07-05 10:53:52

    Tukar kepada nombor 0 dahulu, kemudian bandingkan.

    balas
    0
  • 世界只因有你

    世界只因有你2017-07-05 10:53:52

    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!

    balas
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:53:52

    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?

    balas
    0
  • Batalbalas