Ваша Всратость
ДжС хотя и высокоуровневый скриптовый язык с очень вольной типизацией (ну если только вы не воткнули TypeScript), однако в нем есть возможность упасть на уровень манипуляций байтами и начать гонять биты направо и налево (а еще XORuть и творить прочие непотребства), словно мы в старом-добром C или Pascal. А самое главное - получать из этого преимущества по скорости (закроем глаза, что код становицо не таким читаемым).
Контрольный пример - запись, в которой есть поля "текущее значение" и "ожыдаемое значение" и процесс, в ходе которого ожидаемое значение становится текущим, а новое ожидаемое значение приезжает извне.
Резалт браузерозависимый, три прогона серии по 1,5 ляма циклов
- Опера. 39.01%; 29.76%; 35.34%
- Хром. 35.99%; 32.73%; 39.86%
- ФыФокс. 38.55%; 32.93%; 40.48%
- Эдж. 37.56%; 31.18%; 38.17%
Собсна, научный экскремент можно посмотреть здесь
Ну, точнее, понятно, но не то, от чего прям сердце замирает 😀
Низкоуровневые сущности позволяют выиграть в производительности и плотности хранения (вместо создания отдельных указателей на переменные-поля объекта мы обращаемся к разрядам внутри единственной переменной)
Ну и йа решыла посмотреть, что будет, если в Js попытаться пойти на похожий шаг. Большынство обычных сайтов не получат так весомое преимущество, но если вопрос упирается в производительность (графика, расчеты и моделирование, геймдев), то подобные трюки могут быть уместны и желательны.
+ Сейчас развиваецо еще одна технология - webAssembly, позволяющая на языках более низкого уровня (C/C++/Rust) писать собственные подключаемые функцыи к Js, работающие быстрее чистого жабоскриптового кода. Учитывая склонности и пристрастия, мне стоит вникнуть в методы написания высокооктанового кода.