Heim  >  Fragen und Antworten  >  Hauptteil

javascript - [Schnell feststellen, ob das Array leer ist] []==false Warum wird true zurückgegeben?

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

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

Es ist ersichtlich, dass dies schnell feststellen kann, ob das Array leer ist, aber es gibt einige Zweifel am Prinzip.
Bekannt:

1. Gleichheitsoperator „==“: Zuerst konvertieren und dann vergleichen. Wenn einer der Operanden ein boolescher Wert ist, wird er vor dem Vergleich auf Gleichheit in einen numerischen Wert umgewandelt. Falsch wird in 0 und wahr in 1 umgewandelt.

2. Wenn ein Operand ein Objekt ist und der andere nicht, rufen Sie die valueOf()-Methode des Objekts auf und verwenden Sie den erhaltenen Basistypwert für die Konvertierung.

Die rechte Seite von []==fasle wird also in 0 umgewandelt. Was ist mit der linken Seite? Wie wird es umgewandelt?

習慣沉默習慣沉默2663 Tage vor1248

Antworte allen(6)Ich werde antworten

  • 黄舟

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

    这个送给你,javascript 的对比表格:Relational and Equality Operators

    Antwort
    0
  • typecho

    typecho2017-07-05 10:53:52

    http://tech.youzan.com/javasc...
    看完你会懂的

    Antwort
    0
  • 大家讲道理

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

    因为他们都会转化为布尔值进行比较,
    []==false
    =>
    true == false   //false

    Antwort
    0
  • 怪我咯

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

    先转为数字0,然后再对比吧。

    Antwort
    0
  • 世界只因有你

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

    讲道理判断数组为空用这个是不行的吧!

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

    我以为它不会弹,结果还是弹了。大多数情况还是length来判断。当然length判断元素个数的时候也是坑!

    Antwort
    0
  • 滿天的星座

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

    只能说js的内部机制是空数组就是false所以false==false成立啊!那非空数组自然转换成true了true==false就不成立啊!有啥难理解的吗?

    Antwort
    0
  • StornierenAntwort