До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Интересные JS-фишки, о которых вы могли не знать

Время чтения статьи ~1 минута
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Интересные JS-фишки, о которых вы могли не знать главное изображение

Разделитель разрядов, быстрая очистка массива с сохранением ссылки и другие полезные фишки в JS. Сегодня я хотел бы немного расширить ваше знания о JavaScript. Приятного чтения :)

Разделитель разрядов

Я задам лишь один вопрос: «Что будет выведено в консоль?»:

console.log(1_000 + 1_500);

Думаете, что произойдет конкатенация и в консоль выведется «1_0001_500»? Или же выведет ошибку? На самом деле ответом будет являться число 2500, но почему?

Всё просто, символ "_" является разделителем для улучшения читабельности. Согласитесь, гораздо быстрее понять, что написано «один миллион», когда он выглядит так: 1_000_000, а не так: 1000000

Самый быстрый способ перебрать массив

Какие способы перебора значений массива мы знаем? Цикл for, for of и forEach. Но какой из них выбрать, если нам нужно перебрать массив из 1 000 000 000 значений самым быстрым способом? Ответ не столь очевиден.

Самым быстрым окажется цикл for, но не простой, а реверсивный. А всё из-за того, что тот вычисляет размер массива лишь один раз при инициализации.

Быстрая очистка массива с сохранением ссылки

Какой самый быстрый способ очистить массив мы знаем? Разумеется — это присвоить массиву значение пустого массива [], но тогда ссылка на этот массив изменится, а что если нам нужно её сохранить?

const array = [/*Какие-то данные*/];
array.length = 0; //[]

Всё, массив очищен, а ссылка сохранена.

P.S. Аналогичным способом можно заполнять массивы пустыми данными:

const array = [1, 2];
array.length = 4; //[1, 2, , ] 

Оператор с запятой

Вновь простой вопрос, что будет выведено в консоль?

console.log((2,5 - 2) * 2);

Совершенно верно, 6. Но почему?

Всё дело в том, что тут написано не число два с половиной, а число два, запятая, число 5. Что делает запятая? Она выполняет слева направо каждый из операндов и возвращает значение последнего, в данном примере число 5.

На этом у меня всё, спасибо за внимание!

P. S Заметили ли вы, что в пункте «Разделитель разрядов» было написано сто тысяч, а не миллион? :)

Аватар пользователя Шахзод Давлатов
Шахзод Давлатов 01 февраля 2022
9
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября