JS中的数据类型

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
原文地址:https://www.cnblogs.com/wenxuehai/p/10175278.html