1、数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)
JavaScript中可以说一切皆对象。
console.log(typeof 123); //number console.log(typeof "abc"); //string console.log(typeof true); //boolean console.log(typeof null); //object console.log(typeof undefined); //undefined console.log(typeof [1, 2, 3]); //object console.log(typeof {a:123,b:456}); //object console.log(typeof function a(){return 123}); //function
可参考:http://www.runoob.com/js/js-datatypes.html
2、判断数据类型
2.1、判断是否为对象
var obj = {a: 123, b: 456} console.log(Object.prototype.toString.call(obj) === '[object Object]'); //true console.log(obj.constructor === Object); //true console.log(obj instanceof Object); //true
2.2、判断是否为数组
var obj = [1,2] console.log(Array.isArray(obj)); //true console.log(obj instanceof Array); //true console.log(Object.prototype.toString.call(obj) === '[object Array]'); //true console.log(obj.constructor === Array); //true console.log(obj.push != undefined); //true 有兼容性问题
2.3、判断是否为字符串
var str = 'aaa' console.log(typeof str); //string console.log(str.constructor); //ƒ String() { [native code] } console.log(Object.prototype.toString.call(str)); //[object String] var str2 = new String(); console.log(str2 instanceof String); //true 只有通过new方式声明一个字符串时,使用instanceof方法才是true