Bonjour,
Pas toujours :
1 2 3
| var minfilesize=0, isFile=true, fsObj={Size:10};
console.log(minfilesize && isFile && fsObj.Size>=minfilesize); //0
console.log(minfilesize ? isFile ? fsObj.Size>=minfilesize : false : false); //false |
De plus, on pourrait s'attendre à avoir
true (à moins de considérer 0 comme signifiant que la taille minimum n'est pas fournie).
C'est un peu ce qui arrive quand on fait ce genre de tests
minfilesize ?,
startDate ? (quand on lit ça, on se demande ce qu'est "startDate", une chaîne, un nombre, un objet...).
Ma préférence personnelle est de faire des comparaisons claires et nettes et en strict.
Le code est un peu plus long, mais plus lisible, on voit tout de suite le type de la variable (ou d'un retour de fonction), pas simplement en lisant le nom de la variable, et puis surtout on évite de mauvaises surprises.
Partager