Este articulo necesita una revisión editorial. Cómo puedes ayudar.
Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
Resumen
La propiedad global undefined representa el valor primitivo undefined
. Es uno de los valores primitivos de JavaScript.
Atributos de la propiedad undefined |
|
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Sintaxis
undefined
Descripción
undefined
es una propiedad del objeto global, es decir, una variable de alcance global. El valor inicial de undefined
es el valor primitivo undefined
.this needs clarification, but that would require explaining primitive values
En navegadores modernos (JavaScript 1.8.5 / Firefox 4+), undefined es una propiedad no-configurable, no-escribible por la especificación ECMAScript 5. Cuando este no sea el caso, evita sobreescribirlo.
Una variable a la que no se le ha asignado valor es de tipo undefined. Un método o sentencia también devuelve undefined
si la variable que se está evaluando no tiene asignado un valor. Una función devuelve undefined
si no se ha devuelto
un valor.
Aunque es posible usarlo como un identificador (nombre de variable) en otro ámbito que no sea el ámbito globlar (porque undefined
no es una palabra reservada), hacerlo es una mala idea que hará tú código difícil de mantener y debugear.
//NO HAGAS ESTO // logs "foo string" (function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })() // logs "foo string" (function(undefined){ console.log(undefined, typeof undefined); })('foo');
Ejemplos
Igualdad estricta y undefined
Puedes usar undefined
y los operadores de igualdad y desigualdas estricta para determinar si una variable tiene un valor. En el siguiente código la variable x
no está definida, y la sentencia if
se evalúa como verdadera.
var x; if (x === undefined) { // se ejecutan estas instrucciones } else { // estas instrucciones no se ejecutan }
Nota: El operador de igualdad estricta se debe usar aquí en vez del operador de igualdad estándar, ya que x == undefined
también comprueba si x
es null
, mientras que el de igualdad estricta no. null
no equivale a undefined
. Vea operadores de comparación
para más detalles.
Typeof operador y undefined
Alternativamente se puede usar typeof
:
var x; if (typeof x === 'undefined') { // se ejecutan estas instrucciones }
Una razón para usar typeof
es que no devuelve un error si la variable no fue declarada.
// x no fue declarada antes if (typeof x === 'undefined') { // devuelve true //se ejecutan estas instrucciones } if (x === undefined) { // devuelve un ReferenceError }
Nota: Falta traducción aclaratoria.
Operador void y undefined
El operador void
es una tercer alternativa.
var x; if (x === void 0) { // se ejecutan estas instrucciones } // y no fue declarada antes if (y === void 0) { // lanza un ReferenceError (a diferencia de `typeof`) }
Especificaciones
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) The definition of 'undefined' in that specification. |
Standard | Initial definition. Implemented in JavaScript 1.3. |
ECMAScript 5.1 (ECMA-262) The definition of 'undefined' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'undefined' in that specification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) The definition of 'undefined' in that specification. |
Draft |
Compatibilidad con navegadores
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |