Что [] означает в JavaScript?
В следующем коде JavaScript есть []
быть назначенным в качестве значения переменной, что это значит?
var openTollDebug = [];
8 ответов
Это массив литералов. Это не совсем то же самое, что объявить new Array()
- объект Array может быть перезаписан в JavaScript, а литерал массива - нет. Вот пример для демонстрации
// let's overwrite the Array object
Array = function(id) {
this.id = id;
}
var a = new Array(1);
var b = [];
console.log(a.hasOwnProperty("id")); // true
console.log(b.hasOwnProperty("id")); // false
console.log(a.push); // false, push doesn't exist on a
console.log(b.push); // true, but it does on b
b.push(2);
console.log(b); // outputs [2]
Это означает массив.
var openTollDebug = [];
объявляет openTollDebug
переменная и инициализирует его в пустой массив. Чтобы поместить элементы в массив, вы можете сделать следующее:
var stringArray = ['element1', 'element2', 'element3'];
alert(stringArray[1]); // displays 'element2'
var numberArray = [1, 2, 3, 4];
alert(numberArray[2]); // displays 3
var objectArray = [{ name: 'john' }, { name: 'peter' }, { name: 'tom' }];
alert(objectArray[1].name); // displays 'peter'
Это сокращение для пустого массива. То же, что новый Array(). Также {} является пустым объектом. Объекты похожи на хеш-таблицы в Js, поэтому вы можете использовать их в качестве словаря.
Создает пустой массив.
Это хороший способ иметь ненулевой объект.
В JavaScript очень легко добавлять функции и свойства к этому объекту. Например:
openTollDebug.title = 'hello world';
openTollDebug.show = function(){alert('Debug');};
В качестве массива вы можете добавлять элементы:
openTollDebug.push('added item');
openTollDebug[3] = 'just add anywhere';
Многие языки имеют конструкции для литералов. [] Является литералом Array.
var openTollDebug = [];
такой же как
var openTollDebug = new Array();
Просто знайте, что использование [] предпочтительнее по соображениям производительности.
Есть и другие литералы, такие как литералы объектов
var MyObject = {
name:'default',
age:22,
hobbies:["golf","video games","otherstuff"]
}
Обратите внимание на литерал массива с данными. [] Создает пустой массив.
Попробуйте использовать литералы из-за производительности. Ты не пишешь
var obj = new Object({name: 'John'})
Ты просто пишешь
var obj = {name: 'John'}
Вы также не пишите
button.onclick = new Function("alert('Clicked!')");
Ты пишешь
button.onclick = function () { alert('Clicked') }
И вот ссылка на хороший пост в блоге об этом