В коде jQuery наткнулся на красивый способ получения «честного» undefined:
(function(undefined) {
// тут мы имеем настоящий undefined
})();
Напомню, что глобальный undefined
можно легко переопределить:
window.undefined = 'some_value';
Вышеприведенный же способ позволяет иметь в своем коде настоящий, «защищенный» undefined
, неподверженный переопределению извне.
Кроме этого, добавляются «бесплатные» бонусы:
undefined
становится локальным внутри кода, обращение к нему будет быстрее, чем к глобальномуundefined
- внутри такого кода
undefined
будет пожат обфускаторами кода, в отличие от глобального
По-моему, очень изящно.