最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js判斷對象是否擁有某個key的兩種方法對比

 更新時間:2023年12月13日 11:03:00   作者:YumOS  
JS中數(shù)組和對象是等同的,我們經(jīng)常遇到需要判斷一個key是否存在于對象中的情況,這篇文章主要給大家介紹了關于如何利用js判斷對象是否擁有某個key的兩種方法對比,需要的朋友可以參考下

一、兩種判斷方法

方法一 :"key" in obj ,結果為 false,表示不包含;否則表示包含

方法二 :obj.hasOwnProperty("key"),obj 表示對象,結果為 false 表示不包含;否則表示包含

二、兩種方法的區(qū)別

這兩種方法都可以用于檢查對象是否包含指定的屬性,但它們有一些區(qū)別。

  • “key” in obj:

    • 這種方法使用 in 運算符來檢查屬性是否存在于對象中。
    • 如果對象 obj 或其原型鏈中包含名為 “key” 的屬性,則返回 true
    • 如果對象 obj 不包含名為 “key” 的屬性,并且它的原型鏈上也不存在該屬性,則返回 false。
  • obj.hasOwnProperty(“key”):

    • 這種方法使用 hasOwnProperty 方法來檢查對象是否直接擁有指定的屬性。
    • 如果對象 obj 直接擁有名為 “key” 的屬性,則返回 true。
    • 如果對象 obj 不直接擁有名為 “key” 的屬性,或者它的原型鏈上存在該屬性,則返回 false。

區(qū)別如下:

  • "key" in obj 檢查的是屬性是否存在于對象 obj 或其原型鏈中,而不僅僅是對象本身。
  • obj.hasOwnProperty("key") 檢查的是屬性是否直接存在于對象 obj 中,不包括其原型鏈。

三、舉個例子來說明:

var obj = { key: "value" };
console.log("key" in obj);                  // 輸出: true
console.log(obj.hasOwnProperty("key"));     // 輸出: true

console.log("toString" in obj);             // 輸出: true (toString是Object的原型方法)
console.log(obj.hasOwnProperty("toString"));// 輸出: false

在這個例子中,obj 對象直接擁有名為 “key” 的屬性,因此兩種方法都返回 true。同時,由于 toString 方法存在于 Object 的原型中,因此使用 in 運算符檢查 "toString" in obj 會返回 true,但 obj.hasOwnProperty("toString") 返回 false,因為該屬性不是直接屬于 obj 對象的。

因此,選擇使用哪種方法取決于你對屬性存在性的具體需求,是希望檢查對象及其原型鏈上的屬性,還是僅僅檢查對象自身的屬性。

附:js判斷數(shù)組或對象中的key是否存在

JS中數(shù)組和對象是等同的,判斷一個key是否存在于數(shù)組中(或對象是否包含某個屬性),我們可能馬上想到的是使用ary[key] == undefined來判斷key是否存在這個數(shù)組或者是對象中,但是這樣判斷是有問題的,因為可能存在ary = {key:undefined};

正確的方法應該為:

ary.hasOwnProperty(key); 或 obj.hasOwnProperty(key);

另外數(shù)組或對象進行循環(huán)的時候應該使用:

for(var key in ary) { console.log(key+" : "+ary[key]); }

總結

到此這篇關于js判斷對象是否擁有某個key的兩種方法對比的文章就介紹到這了,更多相關js判斷對象有某個key內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • javascript實現(xiàn)動態(tài)時鐘的啟動和停止

    javascript實現(xiàn)動態(tài)時鐘的啟動和停止

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)動態(tài)時鐘的啟動和停止文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JS 退出系統(tǒng)并跳轉到登錄界面的實現(xiàn)代碼

    JS 退出系統(tǒng)并跳轉到登錄界面的實現(xiàn)代碼

    這篇文章介紹了退出系統(tǒng)后跳轉到登陸頁面的簡單JS代碼,有需要的朋友可以參考一下
    2013-06-06
  • JavaScript切換搜索引擎的導航網(wǎng)頁搜索框實例代碼

    JavaScript切換搜索引擎的導航網(wǎng)頁搜索框實例代碼

    這篇文章主要介紹了javascript切換搜索引擎的導航網(wǎng)頁搜索框的實例代碼,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下
    2017-06-06
  • JavaScript實現(xiàn)簡單的Markdown語法解析器

    JavaScript實現(xiàn)簡單的Markdown語法解析器

    Markdown 是一種輕量級標記語言, 它允許人們使用易讀易寫的純文本格式編寫文檔,然后轉換成有效的 XHTML(或者HTML)文檔。本文將利用JavaScript實現(xiàn)簡單的Markdown語法解析器,感興趣的可以了解一下
    2023-03-03
  • JS+CSS實現(xiàn)仿msn風格選項卡效果代碼

    JS+CSS實現(xiàn)仿msn風格選項卡效果代碼

    這篇文章主要介紹了JS+CSS實現(xiàn)仿msn風格選項卡效果代碼,涉及JavaScript響應鼠標事件動態(tài)變換頁面元素css樣式實現(xiàn)切換功能的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 利用JavaScript實現(xiàn)3D可旋轉粒子矩陣效果

    利用JavaScript實現(xiàn)3D可旋轉粒子矩陣效果

    dat.gui.js是一個一個輕量級的圖形用戶界面庫,或者說GUI組件,只有幾十KB,可以用于創(chuàng)建操作控制三維場景的菜單欄等。本文將利用dat.gui.min.js實現(xiàn)3D可旋轉粒子矩陣效果,感興趣的可以了解一下
    2022-06-06
  • 基于wordpress的ajax寫法詳解

    基于wordpress的ajax寫法詳解

    下面小編就為大家分享一篇基于wordpress的ajax寫法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 完美實現(xiàn)bootstrap分頁查詢

    完美實現(xiàn)bootstrap分頁查詢

    這篇文章主要介紹了一個完美的bootstrap分頁查詢,如何利用bootstrap實現(xiàn)分頁查詢,本文將為大家進行揭曉
    2015-12-12
  • jsonp跨域請求詳解

    jsonp跨域請求詳解

    這篇文章主要為大家詳細介紹了jsonp跨域請求的相關資料,激活了所有接口支持瀏覽器跨域請求的封裝,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 非常不錯的[JS]Cookie精通之路

    非常不錯的[JS]Cookie精通之路

    Cookies,有些人喜歡它們,有些人憎恨它們。但是,很少有人真正知道如何使用它們。現(xiàn)在你可以成為少數(shù)人中的成員-可以自傲的 Cookie 大師。
    2008-06-06

最新評論

汝城县| 星座| 甘孜| 宿迁市| 沈丘县| 昌乐县| 云梦县| 上饶县| 武平县| 黄浦区| 巴东县| 莱芜市| 东丰县| 定州市| 抚松县| 玉树县| 兴山县| 蛟河市| 印江| 绵竹市| 莱州市| 伊金霍洛旗| 海南省| 南康市| 麻阳| 工布江达县| 西乡县| 鹿邑县| 上虞市| 子洲县| 萝北县| 大同市| 夏河县| 罗定市| 浑源县| 南召县| 八宿县| 历史| 云和县| 普格县| 镇沅|