SOURCE

let bool=true;
let num=1;
let str="abc";
let und=undefined;
let nul=null;
let arr=[1,2,3];
let obj={
    name:'lisi',
    id:111
};
let fn=function(){
    console.log('hello');
};
let s1=Symbol();

console.log(typeof bool);
console.log(typeof num);
console.log(typeof str);
console.log(typeof und);
console.log(typeof nul);//不能判断null;
console.log(typeof arr);//不能判断arr;
console.log(typeof obj);
console.log(typeof fn);
console.log(typeof s1);

console.log(bool instanceof Boolean);// false
console.log(num instanceof Number);// false
console.log(str instanceof String);// false
console.log(und instanceof Object);// false
console.log(nul instanceof Object);// false
console.log(arr instanceof Array);// true
console.log(obj instanceof Object);// true
console.log(fn instanceof Function);// true
console.log(s1 instanceof Symbol);// false
console.log(arr instanceof Object);

var P={
    name:'lisi',
    age:12,
    add:function(){
        console.log('heelo');
    }
};
console.log(typeof P);
console.log(P instanceof Person3);
function Person3() {
 this.height = '180';
 return ['a', 'b', 'c'];
}

var p3 = new Person3();
console.log(p3 instanceof Object);
console.log(p3 instanceof Person3);
console.log( typeof p3)
console.log(fn instanceof Person3)

console.log(bool.constructor === Boolean);// true
console.log(num.constructor === Number);// true
console.log(str.constructor === String);// true
console.log(arr.constructor === Array);// true
console.log(obj.constructor === Object);// true
console.log(fn.constructor === Function);// true
console.log(s1.constructor === Symbol);//true

console.log(Object.prototype.toString.call(bool));//[object Boolean]
console.log(Object.prototype.toString.call(num));//[object Number]
console.log(Object.prototype.toString.call(str));//[object String]
console.log(Object.prototype.toString.call(und));//[object Undefined]
console.log(Object.prototype.toString.call(nul));//[object Null]
console.log(Object.prototype.toString.call(arr));//[object Array]
console.log(Object.prototype.toString.call(obj));//[object Object]
console.log(Object.prototype.toString.call(fn));//[object Function]
console.log(Object.prototype.toString.call(s1)); //[object Symbol]

function Fn(){};
Fn.prototype=new Array();
var f=new Fn();
console.log(f.constructor===Fn);    // false
console.log(f.constructor===Array); // true 


var a = Object.prototype.toString;

console.log(a.call(2));

console.log(a.call(true));

console.log(a.call('str'));

console.log(a.call([]));

console.log(a.call(function(){}));

console.log(a.call({}));

console.log(a.call(undefined));

console.log(a.call(null));

console.log(a.call(Fn));
console.log(a.call(f));
console.log(a.call(f.constructor));

console.log(typeof new Boolean(true) === 'Boolean');

function a(){
    var user = "追梦子";
    console.log(this.user); //undefined
    console.log(this); //Window
}
a();
console 命令行工具 X clear

                    
>
console