2012-05-12 8 views
16

Si tengo una declaración de la siguiente manera:Al declarar una variable en javascript, ¿el valor predeterminado es nulo?

var j; 

hace j==null hasta que establezca su valor en algo?

+10

'j == null' será' true', pero no porque 'j' sea' null'. En cambio, es porque 'j' es' undefined', pero el operador '==' escribe coerción. El '==' considera que 'null' y' undefined' son iguales. El operador '===' es estricto y no hace ninguna coacción. –

Respuesta

25

No, no tiene el valor predeterminado de undefined
Pero si desea utilizar la condición !j, que funcionará tanto con los valores (es decir, indefinido o nulos)

Tenga en cuenta que (j==null) es true, pero (j===null) es false ... JavaScript tiene valores de "falsy" y, a veces, reglas inesperadas para convertir valores, además del operador de lujo === para comparar el valor y el tipo al mismo tiempo.

+2

En realidad, j == null se evaluará como verdadero, j === nulo será falso. (Pero sí, el valor predeterminado no está definido ya que j === undefined será verdadero). – SoWeLie

+0

, entonces ¿la escritura k === null se evaluará como verdadera, ya que la variable k no existe? también supongo que puedo usar lo opuesto, y decir "si (j)", y eso se evaluará como falso, ¿correcto? – thisissami

+0

@thisissami no, arrojará un ReferenceError. Lo difícil de conseguir es que * undefined * es realmente un valor válido. Hay tanto 'null' como' undefined', son similares pero diferentes. –

Cuestiones relacionadas