共计 1479 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 在 JavaScript 中,可以使用 typeof 操作符来判断一个变量的数据类型。但是,对于一些特殊的数据类型,例如 null 和 array,typeof 操作符不能正确识别。 |
JS 的基本类型共有七种:bigInt(bigInt 是一种内置对象,是处 symbol 外的第二个内置类型)、number、string、boolen、symbol、undefined、null。复杂数据类型有对象(object)包括基本的对象、函数(Function)、数组(Array)和内置对象(Date 等)。
在 JavaScript 中,可以使用 typeof 操作符来判断一个变量的数据类型。但是,对于一些特殊的数据类型,例如 null 和 array,typeof 操作符不能正确识别。
因此,最佳做法是使用 Object.prototype.toString.call() 方法来判断一个变量的数据类型。该方法返回一个字符串,表示该变量的类型,可以通过分析该字符串来判断变量的数据类型。
下面是一个示例函数,用于优雅地判断 JavaScript 中的所有类型:
javascriptCopy codefunction getType(obj) {return Object.prototype.toString.call(obj).slice(8, -1); | |
} |
然后,您可以使用该函数来判断变量的数据类型:
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" |
如果您需要更细粒度的数据类型判断,比如判断是否是数组、对象等,则可以使用以下方法:
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 |
正文完
星哥玩云-微信公众号
