Все переменные в JavaScript являются объектами, с двумя исключениями, нулевыми и неопределенными.
Кода -копия выглядит следующим образом:
false.tostring (); // 'false'
[1, 2, 3] .toString ();
функция foo () {}
Foo.bar = 1;
Foo.bar;
Распространенным заблуждением является то, что буквальное значение числа не является объектом. Это из -за ошибки в анализаторе JavaScript, которая пытается проанализировать оператор точки как часть плавающей численной стоимости лица.
Кода -копия выглядит следующим образом:
2.toString ();
Есть много обходных путей, чтобы сделать буквальную ценность числа выглядеть как объект.
Кода -копия выглядит следующим образом:
2..toString ();
2.toString ();
(2) .toString ();
Объект как тип данных
Объекты JavaScript могут использоваться в качестве хэш -таблиц и в основном используются для сохранения соответствия между названными клавишами и значениями.
Использование буквального синтаксиса объекта - {} - может создать простой объект. Этот недавно созданный объект наследует от Object.protototype ниже, без каких -либо пользовательских свойств.
Кода -копия выглядит следующим образом:
var foo = {};
// новый объект с пользовательским тестированием «тест» со значением 12
var bar = {test: 12};
Доступ к свойствам
Есть два способа доступа к свойствам объекта, оператор DOT или оператор кронштейна.
Кода -копия выглядит следующим образом:
var foo = {name: 'котенок'}
foo.name;
foo ['name'];
var get = 'name';
foo [Get];
Foo.1234;
foo ['1234'];
Два синтаксиса эквивалентны, но оператор кронштейна по -прежнему действителен в следующих двух ситуациях - свойства динамического настройки - имя атрибута не является допустимым именем переменной (примечание переводчика: например, имя атрибута содержит пространства или имя атрибута Ключевые слова JS)
Примечание переводчика: в инструменте обнаружения синтаксиса JSLINT рекомендуется точечные операторы.
Удалить атрибуты
Единственный способ удалить свойство - это использовать оператор Delete;
Кода -копия выглядит следующим образом:
14
var obj = {
бар: 1,
foo: 2,
Баз: 3
};
obj.bar = не определен;
obj.foo = null;
Удалить obj.baz;
для (var i in obj) {
if (obj.hashownproperty (i)) {
console.log (i, '' + obj [i]);
}
}
Вышеуказанные результаты вывода имеют стержень не определены и Foo Null - только BAZ фактически удален, поэтому он исчезает из результатов выходных данных.
Синтаксис имен атрибутов
Кода -копия выглядит следующим образом:
var test = {
'Case': «Я ключевой слово, поэтому я должен быть замечен как строка»,
Удалить: «Я тоже ключевое слово, так что я» // Ошибка: Синтаксиртор
};
Имя атрибута объекта может быть объявлено с помощью строки или нормального символа. Однако из -за другого неправильного разработки анализаторов JavaScript второй метод объявления, выше, приведет к ошибке синтаксиса до Ecmascript 5.
Причина этой ошибки заключается в том, что удаление является ключевым словом на языке JavaScript;