Valores indefinidos
No JScript, você pode declarar uma variável sem atribuir um valor a ela. Uma variável anotado assume o valor padrão para esse tipo. Por exemplo, o valor padrão para um tipo numérico é zero e o padrão para o String o tipo de dados é a seqüência de caracteres vazia. No entanto, uma variável sem um tipo de dados especificado tem um valor inicial de indefinido e um tipo de dados de indefinido. Da mesma forma, o código que acessa um elemento de matriz não existe ou de uma propriedade do objeto expando retorna um valor de indefinido.
Usando valores indefinidos
Para determinar se existe uma propriedade de objeto ou variável, compare com a palavra-chave indefinido (que funcionará somente para uma variável declarada ou propriedade), ou verifique se o seu tipo é "indefinido" (qual funcionará mesmo para uma variável não declarada ou propriedade). O exemplo de código a seguir, suponha que o programador está tentando testar se a variável x foi declarado:
// One method to test if an identifier (x) is undefined.
// This will always work, even if x has not been declared.
if (typeof(x) == "undefined"){
// Do something.
}
// Another method to test if an identifier (x) is undefined.
// This gives a compile-time error if x is not declared.
if (x == undefined){
// Do something.
}
Outra maneira de verificar se uma propriedade do objeto ou variável é indefinida é comparar o valor para null. Uma variável que contém null contém "nenhum valor de" ou "Nenhum objeto." Em outras palavras, ele contém nenhum número válido, string, booleano, matriz ou objeto. Você pode apagar o conteúdo de uma variável (sem excluir a variável), atribuindo a ela o null valor. Observe que o valor indefinido e null comparados como iguais, usando a igualdade (==) operador.
Observação |
---|
Em JScript, null não comparados como iguais a 0 usando o operador de igualdade. Esse comportamento é diferente de outras linguagens, como, por exemplo, C e C++. |
Neste exemplo, o objeto obj é testado para verificar se ele tem a propriedade prop.
// A third method to test if an identifier (obj.prop) is undefined.
if (obj.prop == null){
// Do something.
}
Essa comparação é true
Se a propriedade obj.prop contém o valor null
Se a propriedade obj.prop não existe
Há outra maneira de verificar se uma propriedade de objeto existe. O em o operador retorna true se a propriedade especificada está no objeto fornecido. Por exemplo, o código a seguir testes true se a propriedade prop está no objeto obj.
if ("prop" in someObject)
// someObject has the property 'prop'
Para remover uma propriedade de um objeto, use o Excluir operador.