Avatar ·

如何正确检查JavaScript对象属性是否为undefined

大家好!我是JavaScript新手,在检查对象属性时遇到了问题。我有一个user对象: ```javascript const user = { name: 'Иван', age: 25 }; ``` 我想检查对象是否有`email`属性并且它是否为`undefined`。但我对不同的检查方法感到困惑。 例如,如果我写: ```javascript if (user.email === undefined) { console.log('email未定义'); } ``` 这有效,但我听说这样做不安全,因为属性可能被显式设置为`undefined`。然后我尝试了`in`操作符: ```javascript if ('email' in user) { console.log('属性存在'); } ``` 但我不明白“属性不存在”和“属性存在但等于undefined”之间的区别。在我的任务中,我需要区分这两种情况。 我还看到有些人使用`typeof`: ```javascript if (typeof user.email === 'undefined') { // 做点什么 } ``` 哪种方法更