HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Разделитель разрядов, быстрая очистка массива с сохранением ссылки и другие полезные фишки в JS. Сегодня я хотел бы немного расширить ваше знания о JavaScript. Приятного чтения :)</strong></p>
1 <p><strong>Разделитель разрядов, быстрая очистка массива с сохранением ссылки и другие полезные фишки в JS. Сегодня я хотел бы немного расширить ваше знания о JavaScript. Приятного чтения :)</strong></p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>Разделитель разрядов</a></li>
3 <ul><li><a>Разделитель разрядов</a></li>
4 <li><a>Самый быстрый способ перебрать массив</a></li>
4 <li><a>Самый быстрый способ перебрать массив</a></li>
5 <li><a>Быстрая очистка массива с сохранением ссылки</a></li>
5 <li><a>Быстрая очистка массива с сохранением ссылки</a></li>
6 <li><a>Оператор с запятой</a></li>
6 <li><a>Оператор с запятой</a></li>
7 </ul><h2>Разделитель разрядов</h2>
7 </ul><h2>Разделитель разрядов</h2>
8 <p>Я задам лишь один вопрос: "Что будет выведено в консоль?":</p>
8 <p>Я задам лишь один вопрос: "Что будет выведено в консоль?":</p>
9 <p>console.log(1_000 + 1_500);</p>
9 <p>console.log(1_000 + 1_500);</p>
10 <p>Думаете, что произойдет конкатенация и в консоль выведется "1_0001_500"? Или же выведет ошибку? На самом деле ответом будет являться число 2500, но почему?</p>
10 <p>Думаете, что произойдет конкатенация и в консоль выведется "1_0001_500"? Или же выведет ошибку? На самом деле ответом будет являться число 2500, но почему?</p>
11 <p>Всё просто, символ "_" является разделителем для улучшения читабельности. Согласитесь, гораздо быстрее понять, что написано "один миллион", когда он выглядит так: 1_000_000, а не так: 1000000</p>
11 <p>Всё просто, символ "_" является разделителем для улучшения читабельности. Согласитесь, гораздо быстрее понять, что написано "один миллион", когда он выглядит так: 1_000_000, а не так: 1000000</p>
12 <h2>Самый быстрый способ перебрать массив</h2>
12 <h2>Самый быстрый способ перебрать массив</h2>
13 <p>Какие способы перебора значений массива мы знаем? Цикл for, for of и forEach. Но какой из них выбрать, если нам нужно перебрать массив из<em>1 000 000 000</em>значений самым быстрым способом? Ответ не столь очевиден.</p>
13 <p>Какие способы перебора значений массива мы знаем? Цикл for, for of и forEach. Но какой из них выбрать, если нам нужно перебрать массив из<em>1 000 000 000</em>значений самым быстрым способом? Ответ не столь очевиден.</p>
14 <p>Самым быстрым окажется цикл for, но не простой, а реверсивный. А всё из-за того, что тот вычисляет размер массива лишь один раз при инициализации.</p>
14 <p>Самым быстрым окажется цикл for, но не простой, а реверсивный. А всё из-за того, что тот вычисляет размер массива лишь один раз при инициализации.</p>
15 <h2>Быстрая очистка массива с сохранением ссылки</h2>
15 <h2>Быстрая очистка массива с сохранением ссылки</h2>
16 <p>Какой самый быстрый способ очистить массив мы знаем? Разумеется - это присвоить массиву значение пустого массива [], но тогда ссылка на этот массив изменится, а что если нам нужно её сохранить?</p>
16 <p>Какой самый быстрый способ очистить массив мы знаем? Разумеется - это присвоить массиву значение пустого массива [], но тогда ссылка на этот массив изменится, а что если нам нужно её сохранить?</p>
17 <p>const array = [/*Какие-то данные*/]; array.length = 0; //[]</p>
17 <p>const array = [/*Какие-то данные*/]; array.length = 0; //[]</p>
18 <p>Всё, массив очищен, а ссылка сохранена.</p>
18 <p>Всё, массив очищен, а ссылка сохранена.</p>
19 <p><em>P.S. Аналогичным способом можно заполнять массивы пустыми данными:</em></p>
19 <p><em>P.S. Аналогичным способом можно заполнять массивы пустыми данными:</em></p>
20 <p>const array = [1, 2]; array.length = 4; //[1, 2, , ]</p>
20 <p>const array = [1, 2]; array.length = 4; //[1, 2, , ]</p>
21 <h2>Оператор с запятой</h2>
21 <h2>Оператор с запятой</h2>
22 <p>Вновь простой вопрос, что будет выведено в консоль?</p>
22 <p>Вновь простой вопрос, что будет выведено в консоль?</p>
23 <p>console.log((2,5 - 2) * 2);</p>
23 <p>console.log((2,5 - 2) * 2);</p>
24 <p>Совершенно верно, 6. Но почему?</p>
24 <p>Совершенно верно, 6. Но почему?</p>
25 <p>Всё дело в том, что тут написано не число два с половиной, а число два, запятая, число 5. Что делает запятая? Она выполняет слева направо каждый из операндов и возвращает значение последнего, в данном примере число 5.</p>
25 <p>Всё дело в том, что тут написано не число два с половиной, а число два, запятая, число 5. Что делает запятая? Она выполняет слева направо каждый из операндов и возвращает значение последнего, в данном примере число 5.</p>
26 <p>На этом у меня всё, спасибо за внимание!</p>
26 <p>На этом у меня всё, спасибо за внимание!</p>
27 <p><em>P. S Заметили ли вы, что в пункте "Разделитель разрядов" было написано сто тысяч, а не миллион?</em>:)</p>
27 <p><em>P. S Заметили ли вы, что в пункте "Разделитель разрядов" было написано сто тысяч, а не миллион?</em>:)</p>