在js中如何判断一个对象是否为空
生活随笔
收集整理的這篇文章主要介紹了
在js中如何判断一个对象是否为空
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
網(wǎng)上已經(jīng)有很多的回答了分別是
for in (jquery中就是這么實現(xiàn)的) for of JSON.stringify() == '{}' Object.getOwnPropertyNames() Object.keys() Object.values() Underscore.js中的isEmpty這些辦法在判斷常規(guī)的對象的時候沒有問題,,當一個對象為空的時候得到的答案也是預(yù)期的
但是
當對象中有symbol作為鍵值的時候呢???
測試:
結(jié)果:
就會被誤以為是空的
雖然還有一個方法Object.getOwnPropertySymbols可以拿到,但是在正常的對象中他又為空了
雖然把他們組合起來就可以解決問題,但是有一個新的api叫Reflect.ownKeys(),可以更方便的解決
當然咋真正用的時候很少會那symbol去做一個對象的鍵值,但是在面試的時候,,這個問題可以說是高頻問題了
以上。
總結(jié)
以上是生活随笔為你收集整理的在js中如何判断一个对象是否为空的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOM基本操作(二:对节点的操作)
- 下一篇: BZOJ2115:[WC2011] Xo