Полезный NaN

Комментарии 6

  • 6d0bafa9e9afb2bfaade4dc476b25940_small.p

    22 августа 2017 в 11:43

    +2

    Вы забыли упомянуть одну важную деталь: Не нужно использовать это в реальных проектах :)

    Такое «магическое» поведение может зависеть от браузера, может поменяться внезапно в каком-то браузере или еще чего.

    • 2e88913478c6e4734a1b67dce80c4504_small.p

      22 августа 2017 в 13:02

      +1

      да нет здесь никакой магии, конструктор принимает число, а NaN — число
      приведение типов также работает предсказуемо и ожиданно
      в исходниках momentjs используют подобную конструкцию


      статья лишь напоминает, переходящим с php и других языков, с чуть другой логикой, что в javascript есть особые числа — Infinity, NaN и методы для работы с числами isFinite(), isNaN()

    • 32f18ed366dfb8230006d38601054a7d_small.p

      22 августа 2017 в 13:13

      –2

      Вообще-то, никакое это не «магическое» поведение, это стандарт, причём старше чем сам Javascript. Браузеры ему строго следуют, и никогда не перестанут, так как иначе сломается обратная совместимость.

      Может быть, это неожиданное поведение лично для вас в силу невежества, но настоящий разработчик отличается от кодера тем, что исследует предметную область.

  • 6fc14d32b4bd4ecce19aa259972f205c_small.j

    22 августа 2017 в 11:44

    0

    Все же я так и не понял полезность данной конструкции в реальной жизни и чем полезен NaN
    • fdf72af5ebd1cdbb10289aa4023059f0_small.p

      22 августа 2017 в 12:12

      +1

      Например, проверить или распарсенная строка действительно была датой.


      let date = new Date('foo');
      let isInvalidDate= isNaN(date);
      console.log(isInvalidDate ? "Yes, it was invalid" : "Ooops, was OK");
  • 22 августа 2017 в 11:59

    0

    Результат чтения — NaN

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

© Habrahabr.ru