2015-09-24 2 views
2

Например:Javascript - обнаружение определяется переменной в неопределенном

var myObj = { 
    yes: undefined 
} 

console.log(typeof myObj.yes === 'undefined') //--> true 
console.log(typeof myObj.nop === 'undefined') //--> true too 

Есть ли способ, чтобы обнаружить, если myObj.nop не определен как не определено?

+1

Поскольку тип undefined не определен. Вместо этого используйте 'hasOwnProperty'. –

ответ

5

Вы бы использовать in:

if('yes' in myObj) { 
    // then we know the key exists, even if its value is undefined 
} 

Имейте в виду, это также проверяет свойства в прототип объекта, который, вероятно, хорошо в вашем случае, но в случае, если вы хотите только проверить свойства, которые непосредственно установить на конкретном объекте, вы можете использовать Object.prototype.hasOwnProperty:

if(myObj.hasOwnProperty('yes')) { 
    // then it exists on that object 
} 

Вот a good article на разнице между ними.

1

Использование hasOwnProperty.

myObj.hasOwnProperty('yes');    // returns true 
myObj.hasOwnProperty('nop');   // returns false 
+0

Я собирался сделать это –

0
var myObj = { 
    yes: undefined 
} 

console.log(myObj.yes === undefined); // gives true 

и

var myObj = { 
     yes: 'any value here' 
    } 

    console.log(myObj.yes === undefined); // gives false 

Одна вещь, чтобы отметить здесь, что неопределенная не в одинарные кавычки. Может быть, это дает вам правильное направление.

Смежные вопросы