Sí, puede hacer eso, pero estrictamente hablando, asignará el valor predeterminado si el valor recuperado es falsey , en lugar de verdaderamente indefinido . Sería, por tanto, no sólo igualar undefined
, sino también null
, false
, 0
, NaN
, ""
(pero no "0"
).
Si desea establecer el valor predeterminado solo si la variable es estrictamente, undefined
entonces la forma más segura es escribir:
var x = (typeof x === 'undefined') ? your_default_value : x;
En los navegadores más nuevos, en realidad es seguro escribir:
var x = (x === undefined) ? your_default_value : x;
pero tenga en cuenta que es posible subvertir esto en navegadores antiguos donde se le permitió declarar una variable llamada undefined
que tiene un valor definido, lo que hace que la prueba falle.
localStorage.getItem()
arrojará una excepción si el usuario ha deshabilitado las cookies (al menos en Chrome), por lo que es posible que desee envolverlo dentro de unatry...catch
cláusula