Цитата:
|
Был в моей практике случай, когда один фреймворк каким-то веселым чудом поменял поведение массивов... всех массивов вообще. Я толком не разбирался, как именно это вышло, лишь знаю в тысячах строк фреймворка идет работа с Array.prototype. Суть в следующем. Массив можно перебирать, как и объект, через for (var key in array) - это даже в документации написано (я специально на всяких w3...- сайтах искал). И на самом деле все браузеры так и делали. При этом для массива перебираются только его индексы. Однако после применения того фреймворка в IE у меня стали в качестве ключей вылезать length и еще какие-то ключи. Что-то там было через прототипы изменено. Очень повезло, что ошибка быстро обнаружилась и не пришлось делать глобальных переделок.
И кстати, не просто typeof null == 'object', а typeof null === 'object'. Просто лично я не использую сравнение со строкой из-за паранойи... а вдруг в каком-нибудь тупом браузере будет не 'object', а 'Object' или 'OBJECT'... Тогда и проверка без учета типа провалится... Но это скорее всего именно паранойя... дождемся Спартанца из десятки))))
|
у меня тоже пару месяцев назад такое было)) length влезал в массив, пару дней отлавливал. Какой-то девелоп поставил на ту страницу сайта библиотеку, со странным перебором for по массиву, тоже долго ругался)
Цитата:
|
typeof null === 'object'.
|
я так тоже не использую, просто меня один коллега отчитал, что не использую полную проверку(использую №2) я вот и решил конкурс запилить, сам уже ответил, как аргументирую свою позицию:
Цитата:
|
Я лично за вариант 2, так как считаю №1 лишней смысловой нагрузкой
Те, кто будет использовать данную ф-ю в дальнейшем, должны знать, что они передают в нее.
|
да и его вариант оказался недостаточно правильным, так как не обрабатывает null, я чет сразу не втыкнул в это, тут ребята показали)