前端面试题之JS基本数据类型及判断
JS基本数据类型有:
Number
String
Boolean
Undefined
Object(Array,Function)
Null
Symbol(ES6新增)
其中Array,和Function是Object的子集。
判断Number,Boolean,Undefined,Object,Function直接用typeof:
console.log(typeof 1); //number
console.log(typeof true); //boolean
console.log(typeof undefined); //undefined
console.log(typeof {}); //object
console.log(typeof console.log); //function
判断Array不能用typeof,因为:
console.log(typeof [1,2,3]); //object
所以要用以下方法判断:
console.log([1, 2, 3] instanceof Array); //true
console.log([1, 2, 3].constructor); //ƒ Array() { [native code] }
console.log(Object.prototype.toString.call([1, 2, 3])); //[object Array]
console.log(Array.isArray([1, 2, 3])); //true *IE8不兼容
判断String不能用typeof,因为:
console.log(typeof '123'); //string
console.log(typeof new String('123')); //object
所以要用:
console.log(new String('123') instanceof String); //true
判断Null用===:
console.log(null === null); //true