Todas las variables en JavaScript son objetos, con dos excepciones nulas y indefinidas.
La copia del código es la siguiente:
false.toString ();
[1, 2, 3] .ToString ();
función foo () {}
Foo.bar = 1;
Foo.Bar;
Una idea errónea común es que el valor literal de un número no es un objeto. Esto se debe a un error en el analizador JavaScript que intenta analizar al operador de puntos como parte del valor numérico del punto flotante.
La copia del código es la siguiente:
2.ToString (); // Error: SyntaxError
Hay muchas soluciones para hacer que el valor literal de un número parezca un objeto.
La copia del código es la siguiente:
2..ToString ();
2.ToString ();
(2) .tostring ();
Objeto como tipo de datos
Los objetos JavaScript se pueden usar como tablas hash y se usan principalmente para guardar la correspondencia entre claves y valores con nombre.
Usar la sintaxis literal de un objeto - {} - puede crear un objeto simple. Este objeto recién creado hereda de Object.Prototype a continuación, sin propiedades personalizadas.
La copia del código es la siguiente:
var foo = {}; // un objeto vacío
// Un nuevo objeto con una propiedad personalizada 'prueba' con un valor de 12
var bar = {prueba: 12};
Propiedades de acceso
Hay dos formas de acceder a las propiedades del objeto, al operador DOT o al operador del soporte.
La copia del código es la siguiente:
var foo = {nombre: 'Kitten'}
foo.name;
foo ['nombre'];
var get = 'nombre';
foo [Get];
foo.1234;
foo ['1234'];
Las dos sintaxis son equivalentes, pero el operador del soporte sigue siendo válido en las dos situaciones siguientes, propiedades de configuración dinámica, el nombre del atributo no es un nombre variable válido (nota del traductor: por ejemplo, el nombre del atributo contiene espacios o el nombre del atributo es Palabras clave de JS)
Nota del traductor: en la herramienta de detección de sintaxis JSLint, se recomiendan operadores de puntos.
Eliminar atributos
La única forma de eliminar una propiedad es usar el operador de eliminación;
La copia del código es la siguiente:
14
var obj = {
Bar: 1,
Foo: 2,
Baz: 3
};
obj.bar = indefinido;
obj.foo = nulo;
eliminar obj.baz;
para (var i en obj) {
if (obj.hasownproperty (i)) {
console.log (i, '' + obj [i]);
}
}
Los resultados de salida anteriores tienen una barra indefinida y Foo NULL: solo BAZ en realidad se elimina, por lo que desaparece de los resultados de la salida.
La sintaxis de los nombres de atributos
La copia del código es la siguiente:
VAR test = {
'Case': 'Soy una palabra clave, así que debo notificar como una cadena',
Eliminar: 'Yo también soy una palabra clave, así que yo' // Error: SyntaxError
};
El nombre del atributo de un objeto se puede declarar usando una cadena o un carácter normal. Sin embargo, debido a otro diseño erróneo del analizador JavaScript, el segundo método de declaración anterior arrojará un error de SyntaxError antes de ECMAScript 5.
La razón de este error es que Delete es una palabra clave en el idioma JavaScript;