在js中如何判斷一個對象是否爲空

網上已經有不少的回答了分別是jquery

for in (jquery中就是這麼實現的)
for of
JSON.stringify() == '{}'
Object.getOwnPropertyNames()
Object.keys()
Object.values()
Underscore.js中的isEmpty

這些辦法在判斷常規的對象的時候沒有問題,,當一個對象爲空的時候獲得的答案也是預期的面試

可是
當對象中有symbol做爲鍵值的時候呢???api

測試:
clipboard.png測試

結果:spa

clipboard.png
clipboard.png

就會被誤覺得是空的
雖然還有一個方法Object.getOwnPropertySymbols能夠拿到,可是在正常的對象中他又爲空了code

雖然把他們組合起來就能夠解決問題,可是有一個新的api叫Reflect.ownKeys(),能夠更方便的解決對象

固然咋真正用的時候不多會那symbol去作一個對象的鍵值,可是在面試的時候,,這個問題能夠說是高頻問題了blog

以上。ip

相關文章
相關標籤/搜索