javascript - [Déterminer rapidement si le tableau est vide] []==false Pourquoi renvoie-t-il vrai ?
習慣沉默
習慣沉默 2017-07-05 10:51:52
0
6
1295
console.log([]==false); //输出为true

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

On peut voir que cela peut déterminer rapidement si le tableau est vide, mais il y a quelques doutes sur le principe.
Connu :

1. Opérateur d'égalité "==" : convertissez d'abord puis comparez. Si l'un des opérandes est un booléen, il est converti en valeur numérique avant de comparer l'égalité. False est converti en 0 et true est converti en 1.

2. Si un opérande est un objet et que l'autre ne l'est pas, appelez la méthode valueOf() de l'objet et utilisez la valeur de type de base obtenue pour la conversion.

Donc, le côté droit de []==fasle sera converti en 0. Et le côté gauche ? Comment est-il converti ?

習慣沉默
習慣沉默

répondre à tous(6)
黄舟

Ceci est pour vous, un tableau comparatif de javascript : Opérateurs Relationnels et Égitaires

typecho

http://tech.youzan.com/javasc...
Vous comprendrez après l'avoir lu

大家讲道理

Parce qu'elles seront converties en valeurs booléennes à des fins de comparaison,
[]==false
=>
true == false  //false

刘奇

Convertissez d'abord au numéro 0, puis comparez.

世界只因有你

Il est logique d'utiliser cette méthode pour juger que le tableau est vide, n'est-ce pas ?

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

Je pensais que ça ne rebondirait pas, mais c’est le cas. Dans la plupart des cas, on juge encore en fonction de la longueur. Bien entendu, la longueur est aussi un écueil lorsqu’on juge du nombre d’éléments !

滿天的星座

On peut seulement dire que le mécanisme interne de js est qu'un tableau vide est faux, donc false==false est vrai ! Ensuite, le tableau non vide est naturellement converti en vrai, et true==false n'est pas vrai ! Y a-t-il quelque chose de difficile à comprendre ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal