Avatar ·

如何从JavaScript对象中删除属性?(delete、spread及其他方法)

大家好!我刚开始学习JavaScript,遇到了一个问题。我有一个包含用户数据的对象: ```javascript const user = { name: '阿列克谢', age: 30, email: 'alex@example.com', password: 'secret123', role: 'admin' }; ``` 我需要在将数据发送到客户端之前从这个对象中删除 `password` 属性(以免暴露密码)。我尝试将其赋值为 `undefined`: ```javascript user.password = undefined; ``` 但这并没有删除属性——它只是变成了 `undefined`。在序列化为JSON(JSON.stringify)时它会消失,但在对象本身中键仍然存在。而且如果我通过 `for...in` 遍历对象,`password` 仍然会出现。 我听说过 `delete` 操作符,但让我困扰的是有些人说它很慢,不建议使用。另外,我在某处看到过使用 spread 操作符创建没有该属性的新对象的语法。哪种方法正确,为什么? 请指教,谢谢!