Pregunta

La cláusula if(variable) en el siguiente construye comprueba si la lista / matriz no es nulo / indefinido, para evitar una excepción:

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

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

Sin embargo, la sintaxis de JS permite expresiones como

null || []
undefined || {}

Así que puedo hacer el código más corto por una línea y todavía comprobar la matriz / objeto:

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

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

La cuestión esencial es:? No volver expresión null/undefined || []/{} este último en todos los navegadores

editar:. descubrió que entre llaves son mejores para la iteración for (var k in list || {}), debido a una matriz (entre corchetes) causa una iteración y se produce una excepción

¿Fue útil?

Solución

Sí, null, undefined, 0, "", será toda decisión de false, cuando se trata como un valor lógico (que el operador || hace), y por lo tanto, todos los navegadores utilizará este último. Este comportamiento es perfectamente seguro.

Otros consejos

odio el límite 15 Char.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top