SOURCE

fun();
function fun() {
    let a = ''
    let b = 11
    let c = true
    let d = undefined
    let e = null
    let f = Symbol('qqqq')
    let func = function (){}
    let arr = []
    let obj = {}

    // typeof不能判断类型有三种 null array object 
    console.log(1,typeof a)  //  1, string     √
    console.log(2,typeof b)  //  2, number     √
    console.log(3,typeof c)  //  3, boolean    √
    console.log(4,typeof d)  //  4, undefined  √
    console.log(5,typeof e)  //  5, object     ×
    console.log(6,typeof f)  //  6, symbol     √
    console.log(7,typeof func)// 7, function   √
    console.log(8,typeof arr) // 8, object     ×
    console.log(9,typeof obj) // 9, object     ×
    // instanceof不能判断字面量创建的基础类型,引用数据类型都可以判断
    console.log('instanceof//////////////////////////////////')
    console.log(a instanceof String);                   // ×
    console.log(b instanceof Number);                   // ×
    console.log(c instanceof Boolean);                  // ×
    console.log(new String('') instanceof String);      // √       
    console.log(new Number(11) instanceof Number);      // √
    console.log(new Boolean(true) instanceof Boolean);  // √
    // console.log(null instanceof Null);
    //console.log(undefined instanceof Undefined);
    console.log(arr instanceof Array);                  // √
    console.log(func instanceof Function);              // √
    console.log(obj instanceof Object);                 // √
    // constructor基础数据类型,应用数据类a型全判断
    console.log('constructor//////////////////////////////////')
    console.log(a.constructor === String);              
    console.log(b.constructor === Number);
    console.log(c.constructor === Boolean); 
    //console.log((null).constructor === Null);
    //console.log((undefined).constructor === Undefined);
    console.log(arr.constructor === Array);
    console.log(func.constructor === Function);
    console.log(obj.constructor === Object);
    // Object.prototype.toString 类型全判断
    console.log('Object.prototype.toString//////////////////////////////////')
    console.log(Object.prototype.toString.call(a) === '[object String]');
    console.log(Object.prototype.toString.call(b) === '[object Number]');  
    console.log(Object.prototype.toString.call(c) === '[object Boolean]');
    console.log(Object.prototype.toString.call(null) === '[object Null]');
    console.log(Object.prototype.toString.call(undefined) === '[object Undefined]');
    console.log(Object.prototype.toString.call(arr) === '[object Array]');
    console.log(Object.prototype.toString.call(func) === '[object Function]');
    console.log(Object.prototype.toString.call(obj) === '[object Object]');
}
console 命令行工具 X clear

                    
>
console