[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/undefined [Back]  [Original]

undefined - JavaScript | MDN

Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.

View in English Always switch to English

undefined

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since julho de 2015.

Resumo

O valor global undefined representa um valor indefinido. Trata-se de um dos tipos primitivos do JavaScript.

Property attributes of undefined
Writableno
Enumerableno
Configurableno

In this article

Sintaxe

undefined

Descrio

O undefined uma propriedade do objeto global, ou seja, uma varivel no escopo global. O valor inicial de undefined o valor primitivo undefined.

Nos browsers modernos (JavaScript 1.8.5 / Firefox 4+), a especificao ECMAScript 5 define que o undefined uma propriedade no configurvel e somente leitura. Mesmo quando esse no for o caso, evite sobrescrev-lo.

Uma varivel que no teve um valor atribudo do tipo undefined. Um mtodo ou sentena tambm retorna undefined se a varivel que est sendo avaliada no tem um valor atribudo. Uma funo retorna undefined se um valor no for retornado.

Uma vez que undefined no uma palavra reservada, ele pode ser usado como um identificador (nome de varivel) em qualquer escopo que no seja o escopo global.

js
// escreve no console "foo string"
(function () {
  var undefined = "foo";
  console.log(undefined, typeof undefined);
})();

// escreve no console "foo string"
(function (undefined) {
  console.log(undefined, typeof undefined);
})("foo");

Exemplos

Igualdade estrita (===) e undefined

Voce pode utilizar undefined com os operadores de igualdade e desigualdade estritas para determinar se a varivel possui um valor. No cdigo a seguir, a varivel x no foi definida, e o resultado do if verdadeiro.

js
var x;
if (x === undefined) {
  // sentenas aqui so executadas
} else {
  // o cdigo aqui no  executado
}

Nota: O operador de igualdade estrita (===) tem que ser utilizado aqui uma vez que x == undefined tambm checa se x nulo, enquanto o operador no o faz. null no equivalente undefined. Veja operadores de comparao (em ingls) para maiores detalhes.

Operador Typeof e undefined

Alternativamente, typeof pode ser usado:

js
var x;
if (typeof x === "undefined") {
  // esse cdigo  executado
}

Uma das principais razes para usar o typeof que ele no lana erros caso a varivel no tenha sido inicializada.

js
// x no foi atribuda anteriormente
if (typeof x === "undefined") {
  // retorna verdadeiro sem lanar erros
  // esse cdigo executa
}

if (x === undefined) {
  // lana um ReferenceError para x
}

No entanto, esse tipo de tcnica deveria ser evitada. A linguagem JavaScript uma linguagem com escopo esttico, portanto o conhecimento sobre se uma varivel est definida pode ser adquirido pela verificao de sua definio dentro do contexto qual ela pertence. A nica exceo para o escopo global. No entanto, o escopo global anexado ao objeto global, portanto a verificao da existncia de uma varivel no contexto global pode ser feita atravs de uma checagem na propriedade do objeto global usando o operador in, por exemplo.

Operador Void e undefined

O operador void a terceira alternativa.

js
var x;
if (x === void 0) {
  // esse cdigo executa
}

// y no foi definido antes
if (y === void 0) {
  // lana uma ReferenceError (ao contrrio de `typeof`)
}

Especificaes

Specification
ECMAScript 2027 LanguageSpecification
# sec-undefined

Compatibilidade com navegadores


Web Proxy Viewer  |  New URL  |  Original Page