Вероятно, из-за обычной практики проверить, имеет ли свойство obj
объекта prop
значение, выполнив
if (obj.prop) { ...
или
if (obj.prop !== undefined) { ...
Один изцели строгий режим (как указано в MDN):
- Устраняет некоторые ошибки без вывода сообщений JavaScript, изменяя их на ошибки типа *
Когда программист пытается установить неустановимое свойство, цель программиста ясна, то есть они хотят установить свойство.Таким образом, двигатель может предупредить вас, выдав ошибку.
Но когда вы делаете obj.prop
, намерение не очень ясно.Как и obj.kljasfbbsdbgjksb
(ключ, который не определен) также совершенно законно.
Программист пытается получить значение или просто проверить природу obj.prop
, выполнив typeof obj.prop
, obj.prop === undefined
и т. Д.