null и undefined / Как проверить значение на null (для новичков)

Поділитися
Вставка
  • Опубліковано 30 вер 2024

КОМЕНТАРІ • 17

  • @lesson-web
    @lesson-web 3 місяці тому +1

    большое спасибо

  • @AndreyAndrey-nx6uj
    @AndreyAndrey-nx6uj 3 місяці тому +1

    Благодарю

  • @baileysli6235
    @baileysli6235 3 місяці тому +3

    > null это ошибка, которая признана
    Спрячьте это видео от Мурыча, он сильно горит на этот миф и когда его расказывают новичкам

    • @antonov_i
      @antonov_i  3 місяці тому

      А приводит какие-то аргументы или просто «горит»? Помню был proposal на этот счёт. И в V8 даже имплементировали, но потом отключили, как раз из-за поломки. Живую ссылку вряд ли быстро найду, но в WebArchive в обсуждении Harmony есть. Вижу, что и Брендон выступает за «починку» - web.archive.org/web/20130120031230/wiki.ecmascript.org/doku.php?id=harmony:typeof_null

    • @ДмитрийГусаров-к5о
      @ДмитрийГусаров-к5о 3 місяці тому

      @@antonov_i аргументы - спека, там прописано если typeof null то верни строку object. null не ошибка, архитектуру готовили под java, с java несложилось, архитектура осталась. Null говорит об отсутствии структуры данных. WebApi при поиске елемента в dom возвращает object, но если елемента нет, то мы получим null и тут null нам не говорит, что елемент был или будет, мы могли доспустить ошибку в названии селектора, например.

    • @antonov_i
      @antonov_i  3 місяці тому

      ​@@ДмитрийГусаров-к5о Не вижу противоречий со своим высказыванием. Спека фиксирует текущее поведение и правила. Это не отменяет историю с багом, который так и останется в истории языка. Его не будут править, поэтому странно ожидать, что спека будет говорить про другое. Ведь на неё опираются в первую очередь разработчики движков. Если когда-нибудь захотят исправить это поведение (вряд ли), то изменения войдут в новую спеку.
      В блоге Алекса Раушмайнера в старой публикации есть хорошее обсуждение и фрагменты кода с имплентацией: 2ality.com/2013/10/typeof-null.html. И да, тут тоже засветился автор JS.

    • @antonov_i
      @antonov_i  3 місяці тому

      @@ДмитрийГусаров-к5о А что ты подразумеваешь под фразой «архитектуру готовили под Java»?

    • @ДмитрийГусаров-к5о
      @ДмитрийГусаров-к5о 3 місяці тому

      @@antonov_i вроде тотже чел, который написал что null - ошибка, вскоре написал, что его слова неврно понимают и говорил, что изначально в браузер планировали java, заложили архитектуру, js был песочницей, с java несложилось, стали развивать дальше js на тойже архитектуре. null достался от java. вроде так

  • @MrAirrussia
    @MrAirrussia 3 місяці тому

    ёпта с самого начала, очередной бред, про JS и его странности. Читайте спецификацию ES, там чёрным по-белому написано:
    null value - primitive value that represents the intentional absence of any object value.
    Никаких примитивных типов данных в JS не существуют, null и underfined можно назвать такими, но и то условно, это типы состоящие ровно из одного значения null и underfined.
    null - это объект не определенной структуры, а undefined это когда переменной не присвоено никакое значение.
    Вы разницу ведь улавливает "объект" и "никакой значение"?

    • @antonov_i
      @antonov_i  3 місяці тому

      Выше в комментах как будто объяснил свою позицию. Повторяться нет смысла. Задам встречный вопрос, а что для вас примитивный тип данных?

  • @cheblin
    @cheblin 3 місяці тому +1

    в Typescript & javascript использую только undefined.
    не вижу ни одной причины использовать null.

    • @antonov_i
      @antonov_i  3 місяці тому +3

      Звучит чересчур категорично. Как быть, например, с JSON? null - валидное значение для JSON, а undefined будет утерян при сериализации. Как быть с внешними зависимостями, которые применяют null?