目錄
1。在運算符in使用
2。使用hasOwnProperty()
3。檢查undefined比較(不建議)
4。使用Object.hasOwn() (現代,推薦)
摘要:要使用哪一個?
首頁 web前端 前端問答 如何檢查JavaScript中的對像中是否存在屬性?

如何檢查JavaScript中的對像中是否存在屬性?

Aug 05, 2025 pm 08:54 PM
物件屬性

使用IN運算符檢查自己和繼承的屬性。 2。使用HasownProperty()僅檢查自己的屬性,但對無原型對象謹慎。 3。避免對未定義的檢查,因為當屬性明確設置為未定義時,它是不可靠的。 4。更喜歡object.hasown(),以檢查自己的屬性,因為它是現代,安全並且可以與所有對像一起使用。對於大多數情況,在檢查財產存在時,請使用object.hasown()以清晰度和安全性。

如何檢查JavaScript中的對像中是否存在屬性?

要檢查JavaScript對像中是否存在屬性,您可以根據需要有幾種可靠的方法。這是最常見和有效的方法:

如何檢查JavaScript中的對像中是否存在屬性?

1。在運算符in使用

在操作員in檢查對像中是否存在屬性,包括原型鏈中的繼承屬性。

 const obj = {name:'alice',年齡:25};

console.log(obj中的'name'); // 真的
console.log(obj中的'tostring'); // true(從object.protype繼承)

✅當您要檢測自己和繼承的屬性時,請使用此功能。

如何檢查JavaScript中的對像中是否存在屬性?

2。使用hasOwnProperty()

此方法僅檢查自己的屬性(不是繼承的屬性)。

 const obj = {name:'alice',年齡:25};

console.log(obj.hasownproperty('name')); // 真的
console.log(obj.hasownproperty('toString')); // 錯誤的

✅當您僅關心對像上的屬性時,請使用此功能。

如何檢查JavaScript中的對像中是否存在屬性?

⚠️注意:如果使用Object.create(null) (無原型)創建對象,則將不存在hasOwnProperty 。在這種情況下,使用:

 object.Prototype.hasownProperty.Call(obj,'propName');

3。檢查undefined比較(不建議)

您可能會看到類似的代碼:

 if(obj.prop!== undefined){...}

但這是不可靠的,因為屬性可以存在並仍然明確設置為undefined

 const obj = {prop:undefined};
console.log(obj.prop!== undefined); // false,但是屬性 *確實存在 *

?避免使用此方法,除非您確定該屬性不會設置為undefined


4。使用Object.hasOwn() (現代,推薦)

ES2022中引入的hasOwnProperty()的更安全的靜態版本。

 const obj = {name:'alice'};
console.log(object.hasown(obj,'name')); // 真的
console.log(object.hasown(obj,'age')); // 錯誤的

✅這是現代的最佳實踐 - 即使在沒有原型的物體上也是安全的。


摘要:要使用哪一個?

  • 檢查自己的屬性:使用Object.hasOwn(obj, 'prop') (首選)或obj.hasOwnProperty('prop')
  • 包括繼承屬性'prop' in obj
  • ❌避免: obj.prop !== undefined

在大多數情況下, Object.hasOwn()是最乾淨,最安全的選擇。

基本上,只需根據您是否關心繼承而選擇,但為了清晰和安全而傾向於Object.hasOwn()

以上是如何檢查JavaScript中的對像中是否存在屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1582
276
PHP Notice: Trying to get property '的解決方法' of non-object的解決方法 PHP Notice: Trying to get property '的解決方法' of non-object的解決方法 Jun 22, 2023 am 11:51 AM

當我們在使用PHP進行開發時,有時會遇到」Tryingtogetproperty‘的解決方法’ofnon-object」的錯誤提示。這個錯誤的原因一般是因為程式中對一個不存在或未實例化的物件進行訪問,導致了PHP解析器無法辨識該物件的屬性或方法。那麼,該如何解決這個錯誤呢?以下我將為大家介紹幾個可能的解決方法。一、檢查程式碼首先,我們需要將出錯的代

如何迭代JavaScript對象的屬性? 如何迭代JavaScript對象的屬性? Jun 26, 2025 am 12:46 AM

可以,JavaScript中有多種遍歷對象屬性的方法。 1.使用for...in循環可遍歷對象的所有可枚舉字符串屬性,但建議配合hasOwnProperty()排除繼承屬性;2.使用Object.keys()結合forEach()可更方便地以數組方式處理鍵名;3.使用Object.entries()可直接獲取鍵值對數組,便於解構和操作;此外還可根據需要在循環內添加邏輯實現屬性過濾等功能。

在JavaScript中迭代對象屬性的迭代方法是什麼? 在JavaScript中迭代對象屬性的迭代方法是什麼? Jul 31, 2025 am 07:18 AM

Usefor...intoiterateoverallenumerableproperties,includinginheritedones,andcombinewithhasOwnProperty()tofilteronlyownproperties.2.UseObject.keys()togetanarrayofownenumerablepropertynamesforfunctional-styleiteration.3.UseObject.values()whenyouneedonlyt

如何檢查對像是否在JavaScript中具有鍵 如何檢查對像是否在JavaScript中具有鍵 Jul 18, 2025 am 02:54 AM

在JavaScript中判斷對像是否包含某個鍵,可使用in運算符、hasOwnProperty方法或Object.keys()配合includes()。 1.使用in運算符可檢查對象自身及原型鏈上的鍵,適用於不確定鍵來源的情況;2.使用hasOwnProperty()方法(或更安全的Object.prototype.hasOwnProperty.call(obj,key))僅檢查對象自身的屬性,避免原型鏈干擾;3.使用Object.keys(obj).includes(key)可藉助數組方法判斷,

如何檢查JavaScript中的對像中是否存在屬性? 如何檢查JavaScript中的對像中是否存在屬性? Aug 05, 2025 pm 08:54 PM

usEtheinoperatortocheckforbothownaldinheritedProperties.2.UsehasownProperty()

如何檢查對像是否在JavaScript中具有特定屬性? 如何檢查對像是否在JavaScript中具有特定屬性? Aug 17, 2025 am 01:44 AM

useboct.hasown(obj,'prop')toreliablyCheckeCkforownProperties,asitissecureandrecommend.2.usethe'prop'Inobjoperatorwheninheritedpropertiesshouldalobeincluded.3.avoidcheckingobj.prop!

您如何在JavaScript中訪問對象的屬性? 您如何在JavaScript中訪問對象的屬性? Jul 31, 2025 am 01:18 AM

dotnotationisusedforaccessingObjectPropertiesWithValidIdentifiers,sustasperson.name,offeringability andsimplicity.2.bracketNotationAllowSdemicorsdemicorspecial-characterpropertyAccess,例如,諸如此類[fullname orperson [fullname orperson [鍵] [

如何檢查JavaScript對像中的屬性存在? 如何檢查JavaScript對像中的屬性存在? Aug 08, 2025 am 08:13 AM

Usetheinoperatortocheckforbothownandinheritedproperties;2.UseObject.hasOwn()tosafelycheckforownpropertieswithoutprototypeinterference;3.UsehasOwnProperty()forownpropertiesinolderenvironments;4.Avoidcheckingagainstundefinedasitcannotdistinguishmissing

See all articles