Avatar ·

Como verificar corretamente se uma propriedade de objeto em JavaScript é undefined?

Olá a todos! Sou novo em JavaScript e encontrei um problema ao verificar propriedades de objetos. Eu tenho um objeto user: ```javascript const user = { name: 'Иван', age: 25 }; ``` Quero verificar se o objeto possui a propriedade `email` e se ela é `undefined`. Mas estou confuso sobre as diferentes formas de verificação. Por exemplo, se eu escrevo: ```javascript if (user.email === undefined) { console.log('email não está definido'); } ``` Isso funciona, mas ouvi dizer que não é seguro fazer isso, porque a propriedade pode ser explicitamente definida como `undefined`. Depois tentei o operador `in`: ```javascript if ('email' in user) { console.log('a propriedade existe'); } ``` Mas aqui não entendo a diferença entre "a propriedade não existe" e "a propriedade existe, mas é undefined". Na minha tarefa, preciso distinguir esses dois casos. Também vi que alguns usam `typeof`: ```javascript if (typeof user.email === 'undefined') { // fazemos algo } ``` Qual método é