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?
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?
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.
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
, 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
@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. –
'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. –