//基本类型:string、Boolean、number、undefined、null
//引用类型:function、Date、Object、Array
var arr=new Array("1","2","3","4","5");
var arr1=[1,2];
var str=String("123");
var str1=new String("22");
var fun=function(){};
var fun1=new Function();
var date=new Date();
var obj={};
var obj1=new Object();
var num=Number(12);
var num1=new Number(123);
var boo=Boolean(true);
var boo1=new Boolean(false);
var un;
1.typeof
! console.log(typeof(null));//object
! console.log(typeof(arr));//object
! console.log(typeof(arr1));//object
console.log(typeof(str));//string
console.log(typeof(str1));//object
console.log(typeof(fun));//function
console.log(typeof(fun1));//function
console.log(typeof(date));//object
console.log(typeof(obj));//object
console.log(typeof(obj1));//object
console.log(typeof(num));//number
console.log(typeof(num1));//object
console.log(typeof(boo));//boolean
console.log(typeof(boo1));//object
console.log(typeof(un));//undefined
2.instanceof
console.log(null instanceof null);//Uncaught TypeError: Right-hand side of 'instanceof' is not an object
console.log(null instanceof Object);//false
console.log(arr instanceof Array);//ture
console.log(arr1 instanceof Array);//true
console.log(str instanceof String);//false
console.log(str1 instanceof String);//true
console.log(fun instanceof Function);//true
console.log(fun1 instanceof Function);//true
console.log(date instanceof Date);//true
console.log(obj instanceof Object);//true
console.log(obj1 instanceof Object);//true
console.log(num instanceof Number);//false
console.log(num1 instanceof Number);//true
console.log(boo instanceof Boolean);//false
console.log(boo1 instanceof Boolean);//true
console.log(un instanceof undefined);//Uncaught TypeError: Right-hand side of 'instanceof' is not an object
3.constructor
console.log(arr.constructor.name);
console.log(arr1.constructor.name);
console.log(str.constructor.name);
console.log(str1.constructor.name);
console.log(fun.constructor.name);
console.log(fun1.constructor.name);
console.log(date.constructor.name);
console.log(obj.constructor.name);
console.log(obj1.constructor.name);
console.log(num.constructor.name);
console.log(num1.constructor.name);
console.log(boo.constructor.name);
console.log(boo1.constructor.name);
console.log(un.constructor);//Uncaught TypeError: Cannot read property 'constructor' of undefined
console.log(null.constructor);//Uncaught TypeError: Cannot read property 'constructor' of null
4.Object.prototype.toString.call() 最精确的方法
console.log(Object.prototype.toString.call(null));
console.log(Object.prototype.toString.call(arr));
console.log(Object.prototype.toString.call(arr1));
console.log(Object.prototype.toString.call(str));
console.log(Object.prototype.toString.call(str1));
console.log(Object.prototype.toString.call(fun));
console.log(Object.prototype.toString.call(fun1));
console.log(Object.prototype.toString.call(date));
console.log(Object.prototype.toString.call(obj));
console.log(Object.prototype.toString.call(obj1));
console.log(Object.prototype.toString.call(num));
console.log(Object.prototype.toString.call(num1));
console.log(Object.prototype.toString.call(boo));
console.log(Object.prototype.toString.call(boo1));
console.log(Object.prototype.toString.call(un));