Will (variable o {}) crossbrowser trabajo en Javascript?
-
18-09-2019 - |
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
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
Sí
odio el límite 15 Char.