Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

undefined

BaselineWidely available

Resumo

O valor globalundefined representa um valor indefinido. Trata-se de um dostipos primitivos do JavaScript.

Property attributes ofundefined
Writableno
Enumerableno
Configurableno

Sintaxe

undefined

Descrição

Oundefined é uma propriedade do objetoglobal, ou seja, é uma variável no escopo global. O valor inicial deundefined é o valor primitivoundefined.

Nos browsers modernos (JavaScript 1.8.5 / Firefox 4+), a especificação ECMAScript 5 define que oundefined é uma propriedade não configurável e somente leitura. Mesmo quando esse não for o caso, evite sobrescrevê-lo.

Uma variável que não teve um valor atribuído é do tipoundefined. Um método ou sentença também retornaundefined se a variável que está sendo avaliada não tem um valor atribuído. Uma função retornaundefined se um valor não forretornado.

Uma vez que undefined não é umapalavra reservada, ele pode ser usado como umidentificador (nome de variável) em qualquer escopo que não 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 (===) eundefined

Voce pode utilizarundefined com os operadores de igualdade e desigualdade estritas para determinar se a variável possui um valor. No código a seguir, a variávelx não foi definida, e o resultado doif é verdadeiro.

js
var x;if (x === undefined) {  // sentenças aqui são executadas} else {  // o código aqui não é executado}

Nota:O operador de igualdade estrita (===) tem que ser utilizado aqui uma vez quex == undefined também checa sex é nulo, enquanto o operador não o faz.null não é equivalente àundefined. Vejaoperadores de comparação (em inglês) para maiores detalhes.

Operador Typeof eundefined

Alternativamente,typeof pode ser usado:

js
var x;if (typeof x === "undefined") {  // esse código é executado}

Uma das principais razões para usar otypeof é que ele não lança erros caso a variável não tenha sido inicializada.

js
// x não foi atribuída anteriormenteif (typeof x === "undefined") {  // retorna verdadeiro sem lançar erros  // esse código executa}if (x === undefined) {  // lança um ReferenceError para x}

No entanto, esse tipo de técnica deveria ser evitada. A linguagem JavaScript é uma linguagem com escopo estático, portanto o conhecimento sobre se uma variável está definida pode ser adquirido pela verificação de sua definição dentro do contexto à qual ela pertence. A única exceção é para o escopo global. No entanto, o escopo global é anexado ao objeto global, portanto a verificação da existência de uma variável no contexto global pode ser feita através de uma checagem na propriedade do objeto global usando o operadorin, por exemplo.

Operador Void eundefined

O operadorvoid é a terceira alternativa.

js
var x;if (x === void 0) {  // esse código executa}// y não foi definido antesif (y === void 0) {  // lança uma ReferenceError (ao contrário de `typeof`)}

Especificações

Specification
ECMAScript® 2026 Language Specification
# sec-undefined

Compatibilidade com navegadores

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp