Todas as variáveis no JavaScript são objetos, com duas exceções nulas e indefinidas.
A cópia do código é a seguinte:
false.toString ();
[1, 2, 3] .ToString ();
function foo () {}
Foo.bar = 1;
Foo.bar;
Um equívoco comum é que o valor literal de um número não é um objeto. Isso ocorre por causa de um bug no analisador JavaScript que tenta analisar o operador de ponto como parte do valor da face numérica do ponto flutuante.
A cópia do código é a seguinte:
2.ToString ();
Existem muitas soluções alternativas para fazer com que o valor literal de um número pareça um objeto.
A cópia do código é a seguinte:
2..ToString ();
2.ToString ();
(2) .ToString ();
Objeto como tipo de dados
Os objetos JavaScript podem ser usados como tabelas de hash e são usados principalmente para salvar a correspondência entre chaves e valores nomeados.
O uso da sintaxe literal de um objeto - {} - pode criar um objeto simples. Este objeto recém -criado herda do Object.Prototype abaixo, sem propriedades personalizadas.
A cópia do código é a seguinte:
var foo = {};
// Um novo objeto com uma propriedade personalizada 'teste' com um valor de 12
var bar = {teste: 12};
Propriedades de acesso
Existem duas maneiras de acessar as propriedades do objeto, o operador DOT ou o operador de suporte.
A cópia do código é a seguinte:
var foo = {name: 'Kitten'}
foo.name;
foo ['nome'];
var get = 'nome';
foo [Get];
foo.1234;
foo ['1234'];
As duas sintaxes são equivalentes, mas o operador de suporte ainda é válido nas duas situações a seguir - definindo dinamicamente propriedades - o nome do atributo não é um nome de variável válido (Nota do tradutor: por exemplo, o nome do atributo contém espaços ou o nome do atributo é Palavras -chave de JS)
Nota do tradutor: Na ferramenta de detecção de sintaxe do JSLINT, os operadores de pontos são recomendados.
Excluir atributos
A única maneira de excluir uma propriedade é usar o operador de exclusão; definir a propriedade como indefinida ou nula não exclui a propriedade, mas simplesmente remove a associação entre a propriedade e o valor.
A cópia do código é a seguinte:
14
var obj = {
Bar: 1,
Foo: 2,
Baz: 3
};
obj.bar = indefinido;
obj.foo = nulo;
excluir obj.baz;
para (var i em obj) {
if (obj.hasownProperty (i)) {
console.log (i, '' + obj [i]);
}
}
Os resultados da saída acima têm barras indefinidas e foo nulo - apenas o Baz é realmente excluído, por isso desaparece dos resultados da saída.
A sintaxe dos nomes de atributos
A cópia do código é a seguinte:
var teste = {
'case': 'eu sou uma palavra -chave, então devo ser notado como uma string',
Exclua: 'Eu também sou uma palavra -chave, então eu' // Erro: SyntaxError
};
O nome do atributo de um objeto pode ser declarado usando uma string ou um caractere normal. No entanto, devido a outro design errôneo do analisador JavaScript, o segundo método de declaração acima lançará um erro de sintaxerror antes do ECMAScript 5.
O motivo desse erro é que a exclusão é uma palavra -chave no idioma JavaScript;