Если вы как-то не можете удержаться от затенения глобальных undefined
или не можете удержаться от попыток ссылаться на необъявленные переменные, используйте:
typeof x === 'undefined'
Если вы придерживаетесь хороших методов кодирования,и верьте в возможность сломанного кода, используйте:
x === undefined
Если вы хотите другую альтернативу, вы можете использовать:
x === void 0;
... где void
всегда возвращает undefined
и не полагается на глобальное свойство.
Еще одна мера предосторожности, которую вы можете использовать, - это хорошее использование теней путем определения правильного undefined
в функции:
(function( undefined ) {
// notice that no arguments were passed,
// so the `undefined` parameter will be `undefined`
var x;
if( x === undefined ) {
}
})();
... некоторые люди предпочитают давать ему другое имя:
(function( undef ) {
// notice that no arguments were passed,
// so the `undefined` parameter will be `undefined`
var x;
if( x === undef ) {
}
})();