今天我有需要檢查一個物件是否為空的需求。

由於在JavaScript中,物件是透過參考來進行比較的,因此無法像下面這樣進行簡單的比較:

const obj = {}

if (obj === {}) {
 //no
}

解決方法是將該物件傳遞給內建的 Object.keys() 方法,然後檢查該物件的建構函式是否為 Object

const obj = {}

Object.keys(obj).length === 0 && obj.constructor === Object

重要的是要添加第二個檢查,以避免出現誤報。