как работают квадратные скобки в javascript
Я новичок в js, недавно наткнулся на такой код
let a = [1, 0, 0, 0, 0, ];
let b = 0;
() => {
if (b + 1 < 5) {
a[b] = 0;
a[b + 1] = 1;
b++;
}
}
Насколько мне известно, [ ] это объект, не могу понять что означает a[b] = 0, и как вообще эта функция работает без цикла.
Ответы (2 шт):
Квадратные скобки - это массив.
В начале объявляется массив a и переменная равная 0.
Далее идёт стрелочная функция в которой проверяется условие, и в случае возврата true ячейке b (которая в данном случае является нулём) массива a присваивается значение 0, а дальше следующей ячейке значение 1, а далее переменная b инкрементируется.
Это основы, без которых дальше никуда.
Насколько мне известно, [] это объект...
Объект (он же: Ассоциативный массив), вот:
let obj = {
"bubu": "BUBU!",
"0": "a",
"1": "b",
"2": "c",
"3": "d"
};
console.log(obj.bubu); // "BUBU!"
console.log( obj[0] ); // "a"
console.log( obj["0"] ); // "a"
// console.log( obj.0 ); // ошибка
Хранит пары "ключ": "Значение". Знечения могут быть какими угодно, а ключи - только строками. Если ключ - обычная строка без специальных символов и пробелов, и не начинается с цифры, его значение можно достать через оператор-"точку". Для всех других случаев предусмотрена "скобочная нотация": Когда ключ записывается внутри квадратных скобок, сперва вычисляется, преобразуется в строку, а потом уже достается из объекта.
Т.е., будет работать и такой вариант:
var qs = "querySelector";
document[ qs ]('p')["style"]["background" + "Color"] = "orange";
// document.querySelector('p').style.backgroundColor = "orange";
<p>Работает!</p>
Но если ключ-обычная строка, используют точку, т.к. это просто короче.
let a = [1, 0, 0, 0, 0]; — а вот это, в JS называют просто "массив" (нумерованный список), особый тип объекта, у которого все ключи - числовые строки ("0", "1", "2"...) и спрятаны для удобства. И чтобы достать их значения, к массиву обращаются как к объекту, через скобки: a[0], a[1], a[2]...
P.s. а функция - не работает) Она просто объявлена и висит...