Показать сообщение отдельно
  #15 (permalink)  
Старый 19.05.2015, 10:15
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

typeof null === typeof {} === 'object' - в этом случае ты рискуешь впоследствии обратиться к null, как к объекту и при этом получить ошибку
С другой стороны
options = 1 , options ? options : {} тоже может дать неожиданный результат, если требуется объект с ограниченным набором возможных полей... обычно так бывает в универсальных методах, где объекты, например, копируются в цикле, а не по полям. Ну и остается риск перетереть поведение всего типа, если обращаешься где-нибудь к прототипу этого объекта. Я подобную ошибку случайно нашел в весьма крупном проекте, причем эта ошибка проявлялась только в IE и потому была трудно уловима. А ведь из-за нее мог грохнуться пользовательский интерфейс...

Я всегда делаю комплексную проверку typeof options === typeof {} && options ? options : {} - в этом случае всегда получишь объект.

Последний раз редактировалось demoniqus, 19.05.2015 в 10:22.
Ответить с цитированием