в чем разница между new array() и [] при инициализации длины массива в javascript

Аватар пользователя Maksim Litvinov
Maksim Litvinov
20 ноября 2024

В JavaScript есть несколько способов создания массивов и установки их начальной длины. Давайте рассмотрим разницу между использованием оператора new Array() и литерала [] при инициализации длины массива.

Создание при помощи конструктора new Array()

Этот способ создания массива вызывает конструктор Array, который имеет несколько особенностей. Если new Array(n) используется с одним целочисленным аргументом n, то будет создан массив с зарезервированным местом для n элементов. Однако это не означает, что массив будет длины n, так как он все равно будет разреженным (sparse array). Если new Array() вызывается без аргументов, будет создан пустой массив. При передаче двух и более аргументов, они будут рассматриваться как элементы, а не как размерность массива.

let arr1 = new Array(3); // создает массив длиной 3
console.log(arr1.length); // 3
console.log(arr1); // [empty × 3]

Создание при помощи литерала массива []

Другой способ создания массива - использовать литерал массива, который является краткой записью для вызова конструктора Array. Когда вы используете пустые квадратные скобки [], вы создаете пустой массив. Вы также можете инициализировать массив с элементами, перечисляя их в квадратных скобках через запятую.

let arr2 = [1, 2, 3]; // создает массив с элементами [1, 2, 3]
console.log(arr2.length); // 3
console.log(arr2); // [1, 2, 3]

Таким образом, основная разница между new Array() и [] заключается в том, что использование new Array() с одним аргументом дает возможность указать начальную длину массива, в то время как литерал массива [] обычно используется для создания массивов с элементами

1 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки