Como remover uma propriedade de um objeto JavaScript? (delete, spread e outras formas)
Olá a todos! Comecei a estudar JavaScript recentemente e me deparei com um problema. Tenho um objeto que contém dados do usuário:
```javascript
const user = {
name: 'Alexey',
age: 30,
email: 'alex@example.com',
password: 'secret123',
role: 'admin'
};
```
Preciso remover a propriedade `password` deste objeto antes de enviar os dados para o cliente (para não expor a senha). Tentei atribuir `undefined`:
```javascript
user.password = undefined;
```
Mas isso não remove a propriedade — ela apenas se torna `undefined`. Ao serializar em JSON (JSON.stringify) ela desaparece, mas no próprio objeto a chave permanece. E se eu percorrer o objeto com `for...in`, o `password` ainda aparece.
Ouvi falar sobre o operador `delete`, mas me preocupa que alguns digam que ele é lento e não recomendado. Também vi em algum lugar a sintaxe com spread operator para criar um novo objeto sem a propriedade. Qual é a forma correta e por quê?
Por favor, me ajudem.