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 .

  • (С открытым исходным кодом) Примеры прототипов JavaScript OO
  • Есть ли i18n (Intl) прокладка для JavaScript?
  • Javascript defineProperty, чтобы сделать атрибут неперечислимым
  • Расширение JavaScript-кода Object.prototype
  • Функция Factory в TypScript объявляет файл с и без нового ключевого слова
  • Работает ли Object.keys () в Internet Explorer 9 для встроенных объектов?
  • Есть ли способ в Eclipse изменить уровень соответствия ECMAScript?
  • Как остановить Javascript forEach?
  • Прототипическое OO в JavaScript
  • Какие среды (javascript) поддерживают строгий режим ECMAscript 5? (Ака "строго придерживаться")
  • Object.defineProperty в ES5?
  • Давайте будем гением компьютера.