在 JavaScript 中,可以使用 typeof 操作符來判斷一個變量的數(shù)據(jù)類型。但是,對于一些特殊的數(shù)據(jù)類型,例如 null 和 array,typeof 操作符不能正確識別。
在 JavaScript 中,可以使用 typeof 操作符來判斷一個變量的數(shù)據(jù)類型。但是,對于一些特殊的數(shù)據(jù)類型,例如 null 和 array,typeof 操作符不能正確識別。

因此,最佳做法是使用Object.prototype.toString.call() 方法來判斷一個變量的數(shù)據(jù)類型。該方法返回一個字符串,表示該變量的類型,可以通過分析該字符串來判斷變量的數(shù)據(jù)類型。
下面是一個示例函數(shù),用于優(yōu)雅地判斷 JavaScript 中的所有類型:
javascriptCopy codefunction getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
然后,您可以使用該函數(shù)來判斷變量的數(shù)據(jù)類型:
javascriptCopy codelet num = 123;
console.log(getType(num)); // "Number"
let str = "Hello World";
console.log(getType(str)); // "String"
let arr = [1, 2, 3];
console.log(getType(arr)); // "Array"
let obj = { name: "John Doe" };
console.log(getType(obj)); // "Object"
let func = function() {};
console.log(getType(func)); // "Function"
let n = null;
console.log(getType(n)); // "Null"
let u = undefined;
console.log(getType(u)); // "Undefined"
如果您需要更細粒度的數(shù)據(jù)類型判斷,比如判斷是否是數(shù)組、對象等,則可以使用以下方法:
javascriptCopy codelet num = 123;
console.log(Array.isArray(num)); // false
console.log(typeof num === 'object'); // false
console.log(num instanceof Object); // false
let arr = [1, 2, 3];
console.log(Array.isArray(arr)); // true
console.log(typeof arr === 'object'); // true
console.log(arr instanceof Object); // true
let obj = { name: "John Doe" };
console.log(Array.isArray(obj)); // false
console.log(typeof obj === 'object'); // true
console.log(obj instanceof Object); // true