if([]){}//true
Tous les objets JavaScript sont truthy - ils sont tous contraignent à la valeur booléenne true
.
if([]==true){}//false
Si un Opérande est un objet, et l'autre opérande est un booléen, alors les deux opérandes contraignent à une valeur numérique. Un tableau vide forcera à 0
:
0 == 1 // false
if([1]==true){}//true
Même chose ici.Pour un tableau avec un élément, cet élément forcera à nombre et que la valeur sera comparée à l'autre opérande:
1 == 1 // true
if([2]==true){}//false
est:
2 == 1 // false
if([1,2]==true){}//false
Si le tableau contient plusieurs éléments, la contrainte sur Nombre entraînera NaN
:
NaN == 1 // false
if(['Hi']==true){}//false
La chaîne contraint à la valeur Nombre NaN
:
NaN == 1 // false
if([{aaa:1}]==true){}//false
Un objet contraint également à la valeur Nombre NaN
:
NaN == 1 // false
acceptent quelques réponses .... 1er – Neal
D'accord - ne vous attendez pas les gens à aider si vous n'allez suivre le protocole SO de demander/réponse/accepter. (Nous ne nous attendons pas à 100% d'acceptation, mais 0% est ridicule) –
Un tableau vide '[]' coerces à la valeur du nombre '0' je crois. –