数据类型:
分类:
1.基本(值)类型:
- String:任意字符串
- Number:任意的数字
- Boolean:两个值 true/false
- Undefined:一个值 undefined
- Null:一个值 null
- Symbol:独一无二的值
2.对象(引用)类型:
- Object:任意对象
- Function:一种特别的对象
- Array:一种特别的对象
判断方法:
- typeof:返回数据类型的字符串表达,但是typeof不能区别null, array, object三者
var a = null;
var b = {
b1: 1,
b2: 2
};
var c = [1, 2];
console.log(typeof(a));
console.log(typeof(b));
console.log(typeof(c));
- instanceof:判断对象的基本类型,判断一个对象是否是某个对象的实例。可以区别null, array, object三者, 返回值是布尔值。
console.log(null instanceof Array);
console.log([] instanceof Array);
console.log([] instanceof Object);
var b1 = {
b2: [1, 'abc', true],
b3: function () {
console.log('b3');
}
}
console.log(b1 instanceof Object);
console.log(b1 instanceof Array);
console.log(b1.b2 instanceof Object);
console.log(b1.b3 instanceof Object);
- ===
- 通过对象原型上的方法判断数据类型
function type(target) {
var ret = typeof (target);
var template = {
"[object Array]": "array",
"[object Object]": "object",
"[object Number]": "number - object",
"[object Boolean]": "boolean - object",
"[object String]": "string - object"
}
if (target === null) {
return "null";
} else if (ret == "object") {
var str = Object.prototype.toString.call(target);
return template[str];
} else {
return ret;
}
}
console.log(type(null));
console.log(type({}));
console.log(type([]));