JavaScript删除运算符delete用法介绍

以下是删除运算符的示例。

  • 例子: 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"}

本文将讨论JavaScript中可用的delete运算符。相对而言, Delete是JavaScript中鲜为人知的运算符。此运算符更专门用于删除JavaScript对象属性。
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>

输出如下:
JavaScript删除运算符delete用法介绍

文章图片
如上图所示, 删除个人电话退货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>

输出如下:
JavaScript删除运算符delete用法介绍

文章图片
因此, 使用pop(), shift()or拼接()方法显然是删除数组元素的更好方法。
结论:开发人员还有其他使用方式, 例如将object属性的值设置为nullor未定义。但是该属性仍将存在于对象上, 并且某些运算符对于循环仍会显示nullor未定义属性。
【JavaScript删除运算符delete用法介绍】使用删除循环中的property会大大降低程序速度。因此, 仅在绝对有必要删除对象属性时才应使用此方法。

    推荐阅读