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