1.typeof的作用
typeof常用来检测基本数据类型,不同的基本类型返回不同的值。特殊:如果是null类型,则返回object则不是null。
如果检测引用类型,则返回object。特殊:如果是function类型,则返回function.
2.typeof的返回值
返回的值全都是string类型。它的值有
string
undefined
symbol
boolean
number
function
object
3.举例说明
let sy = Symbol("kk")
function fn(){}
// 基本数据类型
console.log( typeof "abc"); // string
console.log( typeof a); // undefined
console.log( typeof sy); // symbol
console.log( typeof true); // boolean
console.log( typeof 1); // number
console.log( typeof NaN); // number
console.log( typeof null); // object
// 引用类型
console.log( typeof fn); // function
console.log( typeof [1,2,3,4]); // object
console.log( typeof {}); // object
4.原生代码实现
用Object.prototype.toString.call();
function _typof(o){
let array = Object.prototype.toString.call(o).split(' ');
let str = array[1].slice(0,array[1].length-1);
let map = new Map();
map.set('String','string');
map.set('Undefined','undefined');
map.set('Boolean','boolean');
map.set('Number','number');
map.set('Symbol','symbol');
map.set('Null','object');
map.set('Array','object');
map.set('Object','object');
map.set('Function','function');
return map.get(str);
}