//var value; There is no var declaration. The variable was never declared
// check againts undeclared variables
typeof value === "undefined"; // works
// check againts declared variables with no value
value === undefined; // ReferenceError: value is not defined
Есть также проблемы с действительностью undefined = true
. Но тебя это не волнует. Никто не настолько глуп, чтобы изменить undefined
глобально в наши дни.
Я также знаю о багах с instanceof
, которые были сломаны. Я не могу дать вам точную причину, почему Array.isArray
лучше.
Вы найдете критику на instanceof
в JavaScript Garden
Если вы читаете эту статью Там упоминается, как instanceof
не работает в отдельных фреймах / окнах / фреймах.
Потому что instanceof проверяет снова Array
, и у каждого окна есть свой window.Array
.