JavaScript Nulo e indefinido


Ejemplo

Las diferencias entre null e undefined

null e undefined comparten igualdad abstracta == pero no estricta igualdad === ,

null == undefined   // true
null === undefined  // false

Representan cosas ligeramente diferentes:

  • undefined representa la ausencia de un valor , como antes de que se haya creado un identificador / propiedad Objeto o en el período entre el identificador / parámetro de función de creación y su primer conjunto, si lo hubiera.
  • null representa la ausencia intencional de un valor para un identificador o propiedad que ya se ha creado.

Son diferentes tipos de sintaxis:

  • undefined es una propiedad del Objeto global , generalmente inmutable en el ámbito global. Esto significa que en cualquier lugar donde pueda definir un identificador que no sea el espacio de nombres global podría esconderse undefined de ese alcance (aunque las cosas todavía pueden estar undefined )
  • null es una palabra literal , por lo que su significado nunca puede cambiarse e intentar hacerlo generará un error .

Las similitudes entre null e undefined

null e undefined son falsos.

if (null) console.log("won't be logged");
if (undefined) console.log("won't be logged");

Ni null ni undefined igual false (vea esta pregunta ).

false == undefined   // false
false == null        // false
false === undefined  // false
false === null       // false

Usando undefined

  • Si no se puede confiar en el alcance actual, use algo que se evalúe como indefinido , por ejemplo, void 0; .
  • Si undefined está sombreado por otro valor, es tan malo como sombrear Array o Number .
  • Evita establecer algo como undefined . Si desea eliminar una barra de propiedades de un objeto foo , delete foo.bar; en lugar.
  • El identificador de prueba de existencia foo contra undefined podría generar un error de referencia , en su lugar use typeof foo contra "undefined" .