JavaScript如何删除属性及其值
在JavaScript中,可以使用delete
操作符来删除对象的属性及其值。delete
操作符会从对象中移除指定的属性,如果删除成功,返回true
;如果属性不存在或无法删除,返回false
。
示例代码
javascript
let obj = {
name: "Alice",
age: 25,
city: "New York"
};
// 删除 'age' 属性
delete obj.age;
console.log(obj); // 输出: { name: "Alice", city: "New York" }
// 尝试删除不存在的属性
let result = delete obj.gender;
console.log(result); // 输出: true (即使属性不存在,delete 也会返回 true)
// 删除成功
result = delete obj.city;
console.log(result); // 输出: true
console.log(obj); // 输出: { name: "Alice" }
注意事项
-
不可配置的属性 :如果属性是不可配置的(即
configurable
为false
),delete
操作符无法删除该属性,并且会返回false
。javascriptlet obj = {}; Object.defineProperty(obj, 'name', { value: 'Alice', configurable: false }); let result = delete obj.name; console.log(result); // 输出: false console.log(obj.name); // 输出: "Alice"
-
全局变量和函数 :
delete
操作符不能删除使用var
、let
或const
声明的变量或函数。javascriptvar x = 10; console.log(delete x); // 输出: false function foo() {} console.log(delete foo); // 输出: false
-
数组元素 :虽然可以使用
delete
删除数组元素,但这会在数组中留下一个undefined
的空位,而不会改变数组的长度。javascriptlet arr = [1, 2, 3]; delete arr[1]; console.log(arr); // 输出: [1, undefined, 3] console.log(arr.length); // 输出: 3
总结
delete
操作符用于删除对象的属性。- 如果属性不存在或无法删除,
delete
会返回true
。 delete
不能删除使用var
、let
或const
声明的变量或函数。- 删除数组元素会留下
undefined
的空位,不会改变数组长度。
更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github