Это мои заметки к курсу Advanced Javascript Асима Хуссейна (https://medium.com/@jawache). Проверьте это здесь: https://www.udemy.com/javascript-advanced/

Какие существуют типы в Javascript?

Их шесть:

  1. логический
  2. Число
  3. Нить
  4. Неопределенный
  5. Нулевой
  6. Объект

Заметное исключение возникает, если вы возвращаете typeof()a Null:

Нулевое исключение — это просто ошибка в Javascript, но слишком много программ было написано для учета этого исключения, чтобы создатели могли вернуться и изменить его сейчас, поэтому оно остается.

Tangent: Каковы плюсы и минусы динамической и статической типизации?

Динамическую типизацию (например, Javascript) легче писать, но любые ошибки типов могут быть не обнаружены до тех пор, пока программа не будет запущена. Или, что еще хуже, ошибка типа может проскользнуть за это время только для того, чтобы позже вызвать большую проблему.

Статическая типизация (например, Java) немного сложнее в написании, но компилятор может идентифицировать ошибки типов на ранней стадии (то есть до запуска программы).

Что такое NaN и как его проверить?

NaN (не число) обычно является результатом неправильного вычисления (например, 3 * 'potato'). Удивительно, но typeof(NaN) возвращает «число». Еще одна интересная характеристика NaN заключается в том, что оно ничему не равно, включая себя самого:

Как мы можем проверить, строго ли переменная равна NaN?

В Javascript есть встроенная функция isNaN(), но она вернет true для любого нечислового аргумента (то есть любого аргумента, который нельзя привести к числовому типу).

Как оказалось, isNaN() не является идеальной проверкой того, является ли входное значение NaN, потому что входные данные, отличные от NaN, могут возвращать true. Куда мы отправимся отсюда?

Как я уже сказал выше, NaN не равен всему, даже NaN. К счастью, это единственное значение Javascript, которое не равно самому себе. Таким образом, надежный способ проверки NaN:

Надеюсь, это поможет!