JavaScript: свойство для массива
что получится, если в массив добавить свойство
Интересно, можно ли добавить массиву свойства. И, если можно, будет ли новое свойство влиять на длину массива?
let arr = [1, 2, 3, 4, 5];
arr.greeting = "Hello, World!";
console.log(arr.length);
console.log(arr.greeting);
К какому результату приведет выполнение такого кода?
Итак, размышляя о том, что появится в консоли, в первую очередь следует знать, что в JavaScript не существует такого типа данных как массив (array). Любой объявленный массив, хоть и предназначен для хранения упорядоченных данных, в первую очередь является объектом.
Обычно, для добавления нового элемента в массив предназначен встроенный метод push
.
Но, мы уже упомянули, что массив в JavaScript является объектом. В объект можно добавлять новые свойства.
Таким образом, код:
arr.greeting = "Hello, World!";
Не вызовет никаких ошибок и предупреждений и, с точки зрения языка программирования, исполняемый код будет считаться абсолютно верным. Просто объект arr
в результате исполнения такого кода получит новое свойство greeting
.
Данное действие никаким образом не повлияет на длину уже существующего массива.
let arr = [1, 2, 3, 4, 5];
arr.greeting = "Hello, World!";
console.log(arr.length); // 5
console.log(arr.greeting); // Hello, World!
Это означает, что в результате в консоли мы увидим не изменившуюся длину массива, равную 5
и значение добавленного свойства Hello, World!
Спасибо за внимание.