var mycars = new Array("Saab", "Volvo", "BMW");
console.info(typeof mycars); // 輸出 "object"
console.info(mycars); // 輸出 ["Saab", "Volvo", "BMW"]
根據 ECMAScript 標準,JavaScript 中所有的 引用類型(包括 Array、Object、Function、Date、RegExp 等)都是 Object 的實例。因此 typeof 操作符對任何引用類型值(除 null 外)均返回 "object"。
數組本質上是一種特殊的對象,其鍵為數字索引,且擁有 length 屬性和特定方法(如 push、pop)。但從類型系統角度看,它屬於對象範疇。
Array.isArray(mycars) // truemycars instanceof Array // trueObject.prototype.toString.call(mycars) === "[object Array]" // truemycars.constructor === Array // truetypeof arr === "array" —— 永遠不會成立。instanceof 可能失效,優先用 Array.isArray()。null 是特例:typeof null === "object",但它不是對象實例。理解這一機制,有助於編寫更健壯的類型檢查邏輯,避免在條件判斷中踩坑。