Так что сегодня команда подумала об этом, и я подумал, что поделюсь своими мыслями о ситуации. В нашем приложении есть члены команды, которые установят переменные / свойства в undefined, чтобы сбросить их. Я считаю, что передовая практика отличается.

Вы видите, что состояние по умолчанию для свойства, которое не инициализировано (никогда не устанавливалось значение), равно undefined. При выполнении тестов или устранении неполадок трассировки стека вы часто обнаруживаете ошибку типа cannot set property "insertPropertyHere" of undefined. Затем ваш разум должен добавить когнитивную нагрузку, чтобы выяснить, было ли это свойство никогда не инициализировано или вы установили его на undefined программно.

Если вместо этого вы сбросите свои свойства с помощью null, тогда, когда вы увидите cannot set property "insertPropertyHere" of null, вы узнаете, что это свойство когда-то потенциально имело значение и что вы установили его на null программно. Это на одну поездку меньше, чем цикл событий, который может действительно накапливаться со временем.