1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JavaScript刪除對(duì)象的某個(gè)屬性的方法

        共 1690字,需瀏覽 4分鐘

         ·

        2021-05-11 08:51


        1、delete 

        delete是刪除對(duì)象的屬性沒有任何剩菜,剩下的唯一真正的方法,但它的工作比其“替代”設(shè)置慢100倍 object[key] = undefined
        var myObject = {    "ircEvent": "PRIVMSG",    "method": "newURI",    "regex": "^http://.*"};delete myObject.regex;
        console.log(myObject);

        delete 操作符會(huì)從某個(gè)對(duì)象上移除指定屬性。成功刪除的時(shí)候回返回 true,否則返回 false。但是,以下情況需要重點(diǎn)考慮:

        如果你試圖刪除的屬性不存在,那么delete將不會(huì)起任何作用,但仍會(huì)返回true

        如果對(duì)象的原型鏈上有一個(gè)與待刪除屬性同名的屬性,那么刪除屬性之后,對(duì)象會(huì)使用原型鏈上的那個(gè)屬性(也就是說,delete操作只會(huì)在自身的屬性上起作用)

        任何使用 var 聲明的屬性不能從全局作用域或函數(shù)的作用域中刪除。

        這樣的話,delete操作不能刪除任何在全局作用域中的函數(shù)(無論這個(gè)函數(shù)是來自于函數(shù)聲明或函數(shù)表達(dá)式)

        除了在全局作用域中的函數(shù)不能被刪除,在對(duì)象(object)中的函數(shù)是能夠用delete操作刪除的。

        任何用let或const聲明的屬性不能夠從它被聲明的作用域中刪除。

        不可設(shè)置的(Non-configurable)屬性不能被移除。這意味著像Math, Array, Object內(nèi)置對(duì)象的屬性以及使用Object.defineProperty()方法設(shè)置為不可設(shè)置的屬性不能被刪除。

        2、 obj.field = undefined;

        這個(gè)選擇不是這個(gè)問題的正確答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循環(huán)中使用并且在性能方面存在問題,請(qǐng)閱讀詳細(xì)解釋

         var obj = {     field: 1      }; obj.field = undefined;

        3、數(shù)組中使用delete

        在數(shù)組中,與普通的舊對(duì)象不同,使用delete在表單中留下垃圾,null在數(shù)組中創(chuàng)建一個(gè)“洞”, 而且length不變。

        var array = [1, 2, 3, 4];delete array[2];/* Expected result --> [1, 2, 4] * Actual result   --> [1, 2, null, 4] */

        4、數(shù)組中使用splice

        arrayObject.splice(index,howmany,item1,.....,itemX)

        index: 必需。整數(shù),規(guī)定添加/刪除項(xiàng)目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)

            尾處規(guī)定位置。

        howmany: 必需。要?jiǎng)h除的項(xiàng)目數(shù)量。如果設(shè)置為 0,則不會(huì)刪除項(xiàng)目。

        item1: 可選。向數(shù)組添加的新項(xiàng)目。

        var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"
        document.write(arr + "<br />")arr.splice(2,0,"William")document.write(arr + "<br />")/**George,John,Thomas,James,Adrew,Martin*George,John,William,Thomas,James,Adrew,Martin*/

        完~


        學(xué)習(xí)更多技能

        請(qǐng)點(diǎn)擊下方公眾號(hào)


        瀏覽 35
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产视频aaa | 国产美女被洋人菊爆 | 五月天黄色激情网站 | 91天天在线 | 中文字幕久久无码 | 一区二区三区乱伦电影 | 欧美野外做受又粗又硬 | 男性吹潮教程chinese 出轨的女人高潮叫床视频网站 | 少妇高潮视频 | 国产无码久久 |