判斷方法:1、用「物件.屬性名稱!== undefined」語句判斷,如果傳回值為true,則物件上有某個屬性;2、用「'屬性名稱' in 物件」語句,如果回傳true則有某屬性;3、用「物件.hasOwnProperty('屬性名稱')」語句。
本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
es6判斷物件有沒有某屬性
#方法1:點( .) undefined判斷
#我們知道,透過點或方括號可以取得物件的屬性值,如果物件上不存在該屬性,則會傳回 undefined。這種方式可以判斷指定物件的自有屬性和繼承屬性,如果物件本身沒有偵測到的屬性,而原型鏈上有該屬性,則會傳回原型鏈上的屬性值。
// 创建对象 let obj = { name: 'Scarlett', age: 37 } console.log(obj.name !== undefined) // true 自身属性存在 console.log(obj.gender !== undefined) // false gender属性不存在 // 在原型上添加一个可枚举属性 Object.prototype.nationality = 'America' // 在obj对象上添加一个不可枚举属性 Object.defineProperty(obj, 'occupation', { value: 'actress', enumerable: false })
簡單的,我們可以透過 Object.propertyName !== undefined 的回傳值來判斷物件上是否含有某個屬性。但有一種情況,即:屬性名存在,屬性值為 undefined 的情況下,就無法傳回想要的結果。
// 新增一个值为undefined的属性 obj.birthday = undefined console.log(obj.birthday !== undefined) // false
那麼,我們可以使用 in 運算子來解決這個問題。
方法2:in 運算子
該方法可以判斷指定物件的自有屬性和繼承屬性中是否存在某屬性,如果存在則傳回 true。 in 運算子也能偵測到原型鏈上的屬性。
'name' in obj // true 自身属性存在 'occupation' in obj // true 不可枚举属性存在 'nationality' in obj // true 继承属性 'birthday' in obj // true 值为undefined的属性
in 運算子的語法也很簡單,作用範圍和效果與點( . )或方括號( [ ] )相同,不同的是值為 undefined 的屬性也可以正常判斷。
以上這兩種方法的限制是:不能準確區分是自有屬性還是原型鏈上的屬性。如果偵測自身屬性是否存在時,就需要 Object.hasOwnProperty() 了。
方法3:Object.hasOwnProperty()
#Object.hasOwnProperty() 用來判斷指定物件本身是否含有某個屬性(非繼承),返回布林值。
obj.hasOwnProperty('name') // true 自身属性 obj.hasOwnProperty('occupation') // true 不可枚举属性 obj.hasOwnProperty('birthday') // true obj.hasOwnProperty('nationality') // false 原型链上继承的属性
該方法會過濾掉那些繼承來的屬性,當偵測屬性為自有屬性時傳回 true。
【相關推薦:javascript影片教學、web前端】
以上是es6怎麼判斷物件有沒有某屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

是的,ReactApplicationsCanbEseo-FrylylywithProperStratecies.1)用戶 - 插圖(SSR)withToolslikenext.jstogenate.jstogenate fullhtmlforindexing.2)enasleStaticsiteSitegeneration(ssg)

React性能瓶颈主要由低效渲染、不必要的重渲染和组件内重的计算造成。1)使用ReactDevTools定位慢组件并应用React.memo优化。2)优化useEffect,确保仅在必要时运行。3)使用useMemo和useCallback进行记忆化处理。4)将大组件拆分为小组件。5)对于大数据列表,使用虚拟滚动技术优化渲染。通过这些方法,可以显著提升React应用的性能。

有人可能會尋找React的替代品,因為性能問題、學習曲線或探索不同的UI開發方法。 1)Vue.js因其易於集成和溫和的學習曲線而受到讚揚,適用於小型和大型應用。 2)Angular由Google開發,適合大型應用,具有強大的類型系統和依賴注入。 3)Svelte通過在構建時編譯成高效的JavaScript,提供出色的性能和簡潔性,但其生態系統仍在成長。選擇替代品時,應根據項目需求、團隊經驗和項目規模來決定。

KeysinReactarespecialattributesassignedtoelementsinarraysforstableidentity,crucialforthereconciliationalgorithmwhichupdatestheDOMefficiently.1)KeyshelpReacttrackchanges,additions,orremovalsinlists.2)Usingunique,stablekeyslikeIDsratherthanindicespreve

toreCesetUpoverHeadInreActProjects,UsetoolslikecreateActApp(CRA),Next.js,Gatsby,orstarterkits和ManaintainamodullStructur e.1)crasimplifiessetupwithasinglecommand.2)next.jsandgatsbymorefermorefeaturesbutarearningcurve.3)starterkitsprovidecomprehensi

useState()isaReacthookusedtomanagestateinfunctionalcomponents.1)Itinitializesandupdatesstate,2)shouldbecalledatthetoplevelofcomponents,3)canleadto'stalestate'ifnotusedcorrectly,and4)performancecanbeoptimizedusinguseCallbackandproperstateupdates.

ReactispupularduetoItsOmpontement,基於虛擬,虛擬詞,Richecosystem和declarativedation.1)基於組件的harchitectureallowslowsforreusableuipieces。

todebugreactapplicationsefectefectionfection,usethestertate:1)proppropdrillingwithcontextapiorredux.2)使用babortControllerToptopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRaceeDitions.3)intleleassynChronOusOperations.3)


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具