Тут больше камень в огород не к типу null, а к оператору typeof. Этот оператор, как бы странно это не звучало, не возвращает тип данных. Это можно понять по тому, что код typeof (() => {}) вернёт function, а такого типа данных в JS не существует. Думаю, если бы оператор typeof назывался как whatis (к примеру), то подобные споры бы не возникали.
И что тут не так? parseInt принимает значение и систему счисления, а map вызывает функцию со значением, индексом и массивом, поэтому результат выполнения правильный. Да, в JS можно отстрелить ногу, но делать это не обязательно.
Почему typeof null === 'object' назначен багом? В спеке написано, что null - это значение, которое представляет из себя отсутствие значения у объекта. То есть null задуман как отсутвующая ссылка на объект (в других языках null используется аналогично). Поэтому не баг, а фича.
Чтобы сделать анти вх на сервере, придётся хранить актуальное и довольно точное 3D представление карты и просчитывать физику на сервере. Это довольно дорого.
А если это и получится сделать идеально, то вблизи от противников это может не помочь - чит, теоретически, может рассчитать позицию других игроков в зависимости от получаемого звука шагов (это если сервер не передаёт позицию игрока, чтобы игрок услышал шаги, а передаёт информацию прямо о звуке).
Пенькам в прошлом поколении добавили мощи — они теперь с Hyper Threading. Не думаю, что на кофе что-то сильно изменится, разве что частоты слегка поднимут.
А бенчмарки с сравнением обоих реализаций делали? Было бы интересно посмотреть.
Спасибо)
Было дело)
Тут больше камень в огород не к типу null, а к оператору typeof. Этот оператор, как бы странно это не звучало, не возвращает тип данных. Это можно понять по тому, что код typeof (() => {}) вернёт function, а такого типа данных в JS не существует. Думаю, если бы оператор typeof назывался как whatis (к примеру), то подобные споры бы не возникали.
И что тут не так? parseInt принимает значение и систему счисления, а map вызывает функцию со значением, индексом и массивом, поэтому результат выполнения правильный. Да, в JS можно отстрелить ногу, но делать это не обязательно.
Я больше описывал область его применения, а не то, чем он является.
В этой статье исключительно догадки, а описание null как объекта появилось уже в первой спецификации языка.
JS - это язык с автоматической конвертацией типов. Для таких языков это правильное поведение. В этом есть свои плюсы и минусы.
Почему typeof null === 'object' назначен багом? В спеке написано, что null - это значение, которое представляет из себя отсутствие значения у объекта. То есть null задуман как отсутвующая ссылка на объект (в других языках null используется аналогично). Поэтому не баг, а фича.
Чтобы сделать анти вх на сервере, придётся хранить актуальное и довольно точное 3D представление карты и просчитывать физику на сервере. Это довольно дорого.
А если это и получится сделать идеально, то вблизи от противников это может не помочь - чит, теоретически, может рассчитать позицию других игроков в зависимости от получаемого звука шагов (это если сервер не передаёт позицию игрока, чтобы игрок услышал шаги, а передаёт информацию прямо о звуке).
Пенькам в прошлом поколении добавили мощи — они теперь с Hyper Threading. Не думаю, что на кофе что-то сильно изменится, разве что частоты слегка поднимут.