一、数据类型分为两大类型:基本(值)类型 和 对象(引用)类型;
1、基本(值)类型;
①、String
类型,任意字符串;
①-①:先打印一个没有值的变量a
,结果是undefined
var a;
console.log(a); // 输出 undefined
①-②:打印a
的类型,根据结果可以知道是一个undefined字符串;
因为typeof
返回数据类型的字符串表达
var a;
console.log(typeof a === "undefined"); // 输出 true
要知道undefined
和字符串undefined
不是一种类型
console.log(undefined === "undefined"); // 输出 false
①-③:当a
有一个正常的字符串的值
var a = "Document";
console.log(a); // 输出 Document
console.log(typeof a); // 输出 "string"
console.log(typeof a === "string"); // 输出 true
②、Number
类型,任意数字;
var a = 1;
console.log(a); // 输出 1
console.log(typeof a); // 输出 "number"
console.log(typeof a === "number"); // 输出 true
③、boolean
类型,true/false
;
var a = true;
console.log(a); // 输出 true
console.log(typeof a); // 输出 "boolean"
console.log(typeof a === "boolean"); // 输出 true
④、undefined:undefined
代表定义了,未赋值;
var a;
console.log(a); // 输出 undefined
console.log(undefined === "undefined"); // 输出 false
⑤、null:null
代表定义且赋值,但值为null;
var a = null;
console.log(a); // 输出 null
console.log(typeof a); // 输出 "object"
console.log(typeof a === "object"); // 输出 true
所以不建议用typeof去判断是否为null,建议用如下代码
console.log(a === null); // 输出 true
2、对象(引用)类型;
①、Object
:任意对象;
①-①:一个最简单的空对象
var a = new Object();
console.log(a); // 输出 {}
console.log(a instanceof Object); // 输出 true
其中console.log(a instanceof Object);
的意思就是:new Object()
是一个构造函数,a
是否是new Object()
构造函数的实例;
①-②:instanceof
,判断对象的具体类型
var a = {
a1:[1,"abc"],
a2:function(){
console.log("a2");
}
}
console.log(a instanceof Object); // 输出 true
console.log(a.a1 instanceof Array); // 输出 true
console.log(a.a1 instanceof Object); // 输出 true,因为数组Array也是一种特殊的对象
console.log(a.a2 instanceof Function); // 输出 true
console.log(a.a2 instanceof Object); // 输出 true,因为函数Function也是一种特殊的对象
②、Function
:一种特殊的对象(可执行);
②-①:一个最简单的函数,只要在函数名后加上括号(),就可以执行函数
function box(){
console.log("一个函数");
}
box(); // 执行结果 "一个函数"
②-②:判断函数
var boxFn = function box(){
console.log("一个函数");
}
console.log(boxFn instanceof Function); // 输出 true
console.log(boxFn instanceof Object); // 输出 true,因为函数Function也是一种特殊的对象
③、Array
:一种特殊的对象(数值下标,有序的数据);
var boxArr = [1,2,3,"abc",5,6];
console.log(boxArr[2]); // 输出 3
console.log(boxArr instanceof Array); // 输出 true
console.log(boxArr instanceof Object); // 输出 true,因为数组Array也是一种特殊的对象
最终补充:
1、typeof
返回数据类型的字符串表达,可以判断undefined / 数值 / 字符串 / 布尔值 / function,不能判断null与object、Array与object;
2、instanceof
,判断对象的具体类型
来源:CSDN
作者:LiuDevelop
链接:https://blog.csdn.net/qq_21980517/article/details/103936939