在JavaScript中,有很多方法可以用来识别不同的数据类型。下面是常见的几种方法:
- typeof运算符:typeof运算符返回一个字符串,表示被检查操作数的数据类型
typeof 123; // "number"
typeof 'hello world'; // "string"
typeof true; // "boolean"
typeof undefined; // "undefined"
typeof null; // "object"
typeof {
}; // "object"
typeof []; // "object"
typeof function (){
}; // "function"
- instanceof关键字:instanceof可以用于检测一个对象是JavaScript类的实例
const date = new Date();
date instanceof Date; // true
date instanceof Object; // true
- Object.prototype.toString.call()方法:这种方法可以返回 [object NativeConstructorName] 或者 [object HostConstructorName] 字符串
Object.prototype.toString.call("test"); // "[object String]"
Object.prototype.toString.call(123); // "[object Number]"
Object.prototype.toString.call([]); // "[object Array]"
Object.prototype.toString.call({
}); // "[object Object]"
Object.prototype.toString.call(function(){
});// "[object Function]"
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
- isArray()函数:isArray()可以用来判断一个变量是否为一个数组
Array.isArray([]); // true
Array.isArray({
}); // false
这些方法的使用场景不同,具体用哪种方法取决于你的需要。但总的来说,typeof运算符和instanceof关键字通常用于基本类型和对象类型之间的区分,而Object.prototype.toString.call()方法则可用于更细粒度的类型检查