1. typeof判断基本类型
使用typeof只能判断基本数据类型,这里需要特别注意,typeof null 返回的是object
console.log(typeof 123); // number
console.log(typeof '123'); // string
console.log(typeof true); // boolean
console.log(typeof undefined); // undefined
console.log(typeof null); // object
console.log(typeof {}); // object
console.log(typeof []); // object
console.log(typeof function(){}); // function
- instanceof 判断引用数据类型,是用来判断是否是某一个构造函数的实例
console.log('df' instanceof String); // false
console.log(123 instanceof Number); // false
class Person {
constructor(name) {
this.name = name;
}
}
let p = new Person('zhangsan');
console.log(p instanceof Person); // true
const arr = [1,2,3];
console.log(arr instanceof Array); // true
- 直接判断使用 Object.prototype.toString.call(val)
function typeName(val) {
return Object.prototype.toString.call(val).slice(8, -1);
}
console.log(typeName([23,23]));
- 使用
Array.isArray()方法
- 专门用于判断一个值是否为数组。
console.log(Array.isArray([])); // true
console.log(Array.isArray({})); // false