Question

La clause if(variable) dans ce qui suit construit vérifie si la liste / matrice est non nulle / non défini, afin d'éviter une exception:

if (list)
    for (var k in list) {
       ...

if (array)
    for (var i = array.length; i >= 0; i--) {
        ...

Mais la syntaxe JS permet des expressions comme

null || []
undefined || {}

Je peux raccourcir le code par une ligne et toujours vérifier le tableau / objet:

for (var k in obj || {}) {
    ...

for (var i = (array || {}).length; i >= 0; i--) {
    ...

La question est essentiellement: l'expression ne null/undefined || []/{} retourne ce dernier dans tous les navigateurs

modifier. trouvé que les accolades sont mieux pour l'itération de for (var k in list || {}), car un tableau (les crochets) provoquent une itération et une exception est levée

Était-ce utile?

La solution

Oui, null, undefined, 0, "", seront tous résolus à false, lorsqu'ils sont traités comme un booléen (que l'opérateur de || fait), et ainsi, tout navigateur utilisera ce dernier. Ce comportement est tout à fait sûr.

Autres conseils

Oui

Je déteste la limite de 15 char.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top