一、typeof關鍵字
JavaScript中有一個typeof關鍵字,用於判斷變量的類型,其中參數可以是數字、字符串、布爾、對象、函數等。如果要判斷一個值是否為數組或對象,可以使用typeof關鍵字。
let myArr = [1, 2, 3]; let myObject = {name: "Tom", age: 18}; console.log(typeof myArr); // 輸出結果為: "object" console.log(typeof myObject); // 輸出結果為: "object"
以上代碼可以看出,使用typeof關鍵字可以判斷變量的類型,但是對於數組和對象都會輸出”object”,並不能準確地判斷該值是數組還是對象。
二、instanceof關鍵字
JavaScript中有另一個instanceof關鍵字,它可以判斷一個對象是否為某個類的實例,比如Array、Object、Function等。因為數組和對象均是對象類型,所以可以通過instanceof關鍵字來判斷一個值是否是數組。
let myArr = [1, 2, 3]; console.log(myArr instanceof Array); // 輸出結果為: true
以上代碼中使用instanceof關鍵字可以判斷一個值是否為Array類型,而對於對象類型,無法通過instanceof關鍵字來進行判斷。
三、constructor關鍵字
JavaScript中每個對象都有一個constructor屬性,該屬性指向創建該對象的構造函數,可以通過該屬性來判斷一個值是哪個構造函數創建的。
let myArr = [1, 2, 3]; let myObject = {name: "Tom", age: 18}; console.log(myArr.constructor === Array); // 輸出結果為: true console.log(myObject.constructor === Object); // 輸出結果為: true
以上代碼中使用constructor關鍵字可以判斷一個值是哪個構造函數創建的。對於數組和對象都可以使用這種方法來進行判斷。
四、Array.isArray方法
JavaScript中還有一個Array.isArray()方法,可以判斷一個值是否為數組類型。
let myArr = [1, 2, 3]; let myObject = {name: "Tom", age: 18}; console.log(Array.isArray(myArr)); // 輸出結果為: true console.log(Array.isArray(myObject)); // 輸出結果為: false
以上代碼中使用Array.isArray方法可以準確判斷一個值是否為數組類型,對於對象類型則無法判斷。
五、Object.prototype.toString方法
所有的對象都有一個toString方法,但是該方法沒有對對象進行分類處理,而是返回”[object Object]”。因此,可以通過這個方法來判斷一個值是否為數組類型。
let myArr = [1, 2, 3]; let myObject = {name: "Tom", age: 18}; console.log(Object.prototype.toString.call(myArr) === "[object Array]"); // 輸出結果為: true console.log(Object.prototype.toString.call(myObject) === "[object Array]"); // 輸出結果為: false
以上代碼中使用Object.prototype.toString方法可以判斷一個值是否為數組類型,當返回”[object Array]”時即為數組類型,否則為其他類型。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301999.html