• Что значит " недействительными 0` означает? [дубликат]

    Можно Дублировать:
    Что значит “на JavaScript:недействительным(0)” означает?

    Читая Backbone.js исходный код:

    validObj[attr] = void 0; 

    Что такое void 0? Какова цель использования его здесь?

  • Ответы

  • Что делает void 0 в смысле?

    void[Уведомления] - это префикс ключевого слова, которое принимает один аргумент и всегда возвращает undefined.

    Примеры

    void 0 void (0) void "hello" void (new Date()) //all will return undefined 

    В чем смысл?

    Это кажется довольно бесполезным, не так ли? Если она всегда возвращает undefined, что не так просто с помощью undefined сама?

    В идеальном мире мы могли бы просто использовать безопасно undefined: все гораздо проще и легче понять, чем void 0. Но в случае, если вы раньше не замечали, это не идеальный мир, особенно когда дело доходит до кода JavaScript.

    Проблема с использованием undefined заключается в том, что undefined это не является зарезервированным словом (и в некоторые JavaScript среды-это фактически глобальная переменная [wtfjs]). То есть undefined это допустимое имя переменной, так что вы можете присвоить новое значение его на свой страх и каприз.

    alert(undefined); //alerts "undefined" var undefined = "new value"; alert(undefined) //alerts "new value" 

    Примечание: это не относится к любой из современных браузеров, которые не позволяют undefined будут перезаписаны. Однако, эта информация еще пригодится для обратной совместимости целей.

    Из-за этого Вы не можете спокойно положиться на undefined имея значение, которое вы ожидаете.

    void с другой стороны, не может быть переопределенным. void 0 будет всегда возвращать undefined. undefined с другой стороны, может быть все, что г-на JavaScript решит, какой он хочет.

    Почему void 0 конкретно?

    Почему мы должны использовать void 0? Что такого особенного 0? Разве мы не могли бы так же легко использовать 1 или 42 или 1000000 или "Hello, world!"?

    И ответ: "Да, мы могли, и он будет работать так же хорошо. Единственная польза от прохождения в 0 вместо какой-то другой аргумент заключается в том, что 0 короткая и идиоматические.

    void 0 возвращает Undefined, и не могут быть перезаписаны во время undefined могут быть перезаписаны.

    var undefined = "HAHA"; 

    void это зарезервированное ключевое слово в JavaScript. Он оценивает выражение и возвращает всегда undefined.