JavaScript: тестирование переменных для неопределенного значения; Проверка того, является ли объект массивом

  1. Есть ли разница между typeof value === "undefined" и value === undefined ?

  2. Зачем JavaScript нужен Array.isArray() в ECMAScript 5? Не могу ли я просто вызвать value instanceof Array чтобы определить, является ли данная переменная массивом?

 //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 не работает по разным кадрам / окнам / iframes.

Потому что instanceof проверяет снова Array и каждое окно имеет собственное window.Array .

Interesting Posts
Давайте будем гением компьютера.