Некоторые вопросы о типе оператора IE9

Я изучил Окончательное руководство JavaScript. У меня возник вопрос о типе оператора. Я запускаю оповещение script "(typeof window.alert)" в IE9 он оказался возвратной "функцией". но если я удалю определение DOCTYPE в верхней части html, результат превратится в "объект".

Я хочу знать, почему определение DOCTYPE существует или не дает другого результата. Может кто-нибудь мне помочь? 3Q!

Ответ 1

IE <= 8 использовал особые привязки объектов, а оператор typeof возвращал object, где он должен был возвращать function.

Удаление doctype помещает IE в режим quirks. Это гарантирует, что старые веб-сайты можно просматривать, а старые сценарии не вызывают ошибок.