* 1. typeof null => "object" 但是null并不是对象 * 2. 基于typeof无法细分出当前值是普通对象还是数组对象等,因为只要是对象数据类型,返回的结果都是"object"
//数值类型 let number = 1; console.log(typeof number) //=>‘number‘ //字符串类型 let number1 = ‘123‘; console.log(typeof number1) //=>‘string //boolean类型 let number3 = true; console.log(typeof number3)‘ //=>‘boolean‘ //null console.log(typeof null) //=>‘object‘ //NaN console.log(typeof NaN)//=>‘number‘ //undefined console.log(typeof undefined)//=>‘undefined‘
//对象 console.log(typeof {})//=>‘object‘ //数组 console.log(typeof [])//=>‘object‘ //正则 console.log(typeof /^/)//=>‘object‘ //函数 console.log(typeof function(){})//=>‘function‘
注意:
console.log(typeof typeof typeof []); //=> typeof [] => "object" //=> typeof "object" => "string"
用于检测某一值是什么类型的对象
result = variable instanceof Constructor
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
原文:https://www.cnblogs.com/peilin-liang/p/12066762.html