typeof
是一个运算符,其有两种使用方式:typeof(表达式)
;typeof 变量名
;返回值是一个字符串,用来说明变量的数据类型;number
, string
, object
, boolean
, function
, undefined
, symbol
这七种类型,每种情况返回的内容如下表所示:
1 // 字符串 2 console.log(typeof('lili')); // string 3 // 数字 4 console.log(typeof(1)); // number 5 // 布尔值 6 console.log(typeof(true)); // boolean 7 // undefined 8 console.log(typeof(undefined)); // undefined 9 // 对象 10 console.log(typeof({})); // object 11 // 数组 12 console.log(typeof([])); // object 13 // null 14 console.log(typeof(null)); // object 15 // 函数 16 console.log(typeof(() => {})); // function 17 // Symbol值 18 console.log(typeof(Symbol())); // symbol
instanceof
运算符用于检测构造函数的 prototype
属性是否出现在某个实例对象的原型链上,返回值为布尔值,用于指示一个变量是否属于某个对象的实例。
1 const arr = [1, 2]; 2 // 判断Object的prototype有没有在数组的原型链上 3 console.log(arr instanceof Object); // true 4 // 数组arr的原型 5 const proto1 = Object.getPrototypeOf(arr); 6 console.log(proto1); // [] 7 // 数组arr的原型的原型 8 const proto2 = Object.getPrototypeOf(proto1); 9 console.log(proto2); // [] 10 // Object的prototype 11 console.log(Object.prototype); 12 // 判断arr的原型是否与Object的prototype相等 13 console.log(proto1 === Object.prototype); // false 14 // 判断arr的原型的原型是否与Object的prototype相等 15 console.log(proto2 === Object.prototype); // true