写给前端小白的入门技术白皮书04-typeof 与 instanceof

97 阅读1分钟

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