今天我有需要檢查一個物件是否為空的需求。
由於在JavaScript中,物件是透過參考來進行比較的,因此無法像下面這樣進行簡單的比較:
const obj = {}
if (obj === {}) {
//no
}
解決方法是將該物件傳遞給內建的 Object.keys()
方法,然後檢查該物件的建構函式是否為 Object
:
const obj = {}
Object.keys(obj).length === 0 && obj.constructor === Object
重要的是要添加第二個檢查,以避免出現誤報。