typeof 与 instanceof
typeof和instanceof 都可以用来判断数据类型
- typeof主要用来检测基本类型,例如string, number, boolean, undefined返回的是字符串格式的
typeof 'aaa'; // 'string'
typeof 123; // 'numbe'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof null; // 'object' // js中的一个bug,null检测出来是'object'
// 如果是 array或者object类型就检测不出来了
typeof []; // 'object'
typeof {}; // 'object'
// 此时就使用instanceof 来检测是array还是object
- instanceof 用来检测引用类型的数据类型,返回的是布尔值
let a = [1,2,3];
a instanceof Array; // true
a instanceof Object; // true 数组也属于对象类型
let b = {a: 'aaa'};
b instanceof Object; // true
b instanceof Array; // false
let c = function() {};
c instanceof Object; // true
c instanceof Array; // false
- 另外数组新增一个isArray方法用来判断是否是数组
let a = [1,2,3];
Array.isArray(a); // true
let b = 'aaa';
Array.isArray(b) // false