Avatar ·

如何正确检查JavaScript中对象属性是否存在(undefined)

大家好!我开始学习JavaScript,遇到了一个令人困惑的情况。我有一个包含用户数据的对象,想要检查其中是否存在某个特定属性。但我对`undefined`、`null`以及属性根本未声明的情况感到混淆。 举个例子。假设我有一个对象: ```javascript const user = { name: 'Иван', age: 25 }; ``` 我想检查用户是否有`email`属性。如果我写: ```javascript if (user.email === undefined) { console.log('Email未指定'); } ``` 这似乎有效,但我听说这样做是不正确的。为什么?因为`user.email`确实返回`undefined`。 但是,如果我特意将属性值设为`undefined`呢? ```javascript const user2 = { name: 'Мария', email: undefined }; ``` 现在`user2.email`也是`undefined`。我该如何区分属性存在但值为`undefined`的情况,与属性根本不存在的情况?我尝试过