typeof

205 阅读1分钟

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.logtypeof "abc");         // string
console.logtypeof a);             // undefined
console.logtypeof sy);            // symbol
console.logtypeof true);          // boolean
console.logtypeof 1);             // number
console.logtypeof NaN);           // number
console.logtypeof null);          // object

// 引用类型

console.logtypeof fn);            // function
console.logtypeof [1,2,3,4]);     // object
console.logtypeof {});            // 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);

}