// codeart.ru / Вопрос/Ответ / Зачем вместо «undefined» использовать «void 0» Форум

Зачем вместо «undefined» использовать «void 0» rss подписка

Автор: Evgeniy Sergeev

Народ, встретил в коде Backbone.js кучу случаев когда вместо конструкции: «if (undefined == someVariable)» используется такой вариант:«if (void 0 == someVariable)».

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

P.S. Вот еще один красивый прием, который подсмотрел в BackBone.js: «(a = {})[‘variable_name’] = ‘some_value’;«. Данная конструкция присваивает переменной «a» хэш следующего содержания «{variable_name: ‘some_value’}«.

  1. Может быть на случай если то-то попробует переопределить undefined (не уверен, возможно ли). Ну и чуточку короче)

  2. Женя, смотри здесь:
    http://stackoverflow.com/questions/4806286/difference-between-void-0-and-undefined


    The real only semantic difference between void expr and undefined is that on ECMAScript 3, the undefined property of the global object (window.undefined on browser environments) is writable, whereas the void operator will return the undefined value always.

  3. Slanet и Андрей, спасибо. Понятно, что основная причина — теоретическая возможность переопределить undefined. Что само по себе странно )

  4. Ну и еще есь такая штука, нужная воде бы для того же самого

    (function($, undefined){
    // здесь код
    })(jQuery)

Leave a Reply

« »