以下是删除运算符的示例。
- 例子: filter_none
编辑
关
play_arrow
链接
亮度_4
代码
< script> let emp = { firstName: "Raj" , lastName: "Kumar" , salary: 40000 } console.log( delete emp.salary); console.log(emp); < /script>
chevron_right
filter_none
- 输出如下:
true{"firstName":"Raj", "lastName":"Kumar"}
JavaScriptpop(), shift()or拼接()方法可用于从数组中删除元素。但是由于对象中的键值对, 删除操作更加复杂。请注意, 删除运算符仅适用于对象, 不适用于变量或函数。
语法如下:
delete object// ordelete object.property// ordelete object['property']
该运算符返回true如果它删除一个属性。删除不存在的对象属性时, 将返回true但不会影响对象。虽然在尝试删除变量或函数时会返回一个false.
例子:假设一个对象叫做人具有三个键值对(即名, 姓和电话)。现在, 使用删除操作员删除手机属性将返回true.
<
script>
let person = {
firstName: "John" , lastName: "Doe" , phone: 12345
}console.log( delete person.phone);
console.log(person);
<
/script>
输出如下:

文章图片
如上图所示, 删除个人电话退货true并记录人对象显示电话该属性不再存在。
让我们尝试应用删除删除变量和函数的运算符。
<
script>
let num = 5;
let sum = (a, b) =>
{
return a + b;
}console.log( delete num);
//false
console.log( delete sum);
//false
<
/script>
输出如下:
falsefalse
因为删除运算符不适用于变量或函数, 它返回false实际的变量和功能保持不变。
要记住的另一件事是, 该运算符不会删除属性值, 而是删除属性本身。
例子:
<
script>
let person = {
firstName: "John" , lastName: "Doe" , phone: 12345
}let phone = person.phone;
console.log( delete person.phone);
//true
console.log(phone);
//12345
<
/script>
由于对象是引用类型, 因此person.phone和phone变量将引用相同的内存地址。
输出如下:
true12345
输出显示删除操作员已删除该属性, 但该值仍存在于内存中。
例外:全局变量可以使用删除操作员。因为全局变量是窗口对象和作为删除对对象起作用, 它将删除该变量。
例子:
<
script>
toDelete = 5;
// true
console.log( delete toDelete);
// toDelete is not defined
console.log(toDelete);
<
/script>
不使用var, 让orconst关键字将变量设置为全局变量, 并将其用作对象属性。
输出如下:
trueUncaught ReferenceError: toDelete is not defined
删除删除退货true并在删除变量后尝试访问该变量会引发参考错误, 因为该变量已不再定义。
使用delete删除数组值:JavaScript数组是所有对象。所以删除可以使用运算符。但这会引起问题, 因为从数组中删除元素后, 此运算符会将位置显示为空, 并且不会更新数组长度。
例子:
<
script>
let arr = [1, 2, 3]console.log( delete arr[0]);
//true
console.log(arr);
//[empty, 2, 3]
<
/script>
输出如下:

文章图片
因此, 使用pop(), shift()or拼接()方法显然是删除数组元素的更好方法。
结论:开发人员还有其他使用方式, 例如将object属性的值设置为nullor未定义。但是该属性仍将存在于对象上, 并且某些运算符对于循环仍会显示nullor未定义属性。
【JavaScript删除运算符delete用法介绍】使用删除循环中的property会大大降低程序速度。因此, 仅在绝对有必要删除对象属性时才应使用此方法。
推荐阅读
- 在Python中使用JSON数据经典指南
- 数据结构(Python元组用法详细指南)
- 亚马逊面试体验|s414(对于SDET-1)
- NumPy索引 – 索引编制介绍代码示例
- materialize卡片用法详细介绍
- 按排序顺序打印字符串数组,而不将一个字符串复制到另一个字符串中
- CSS 元素+元素选择器用法介绍
- 深入redis(发布订阅的使用和事务操作介绍)
- redis有序集sorted set类型和HyperLogLog结构操作使用介绍