JS数据类型
一、分类
1、基本(值)类型
- String:任意字符换
- Number:任意的数字
- Boolean:true/false
- undefined:undefined
- null:null
2、对象(引用)类型
- Object:任意对象
var obj = {
name:'Tom',
age:12
};
- Function:一种特别的对象(可以执行)
function test(){
var a = 3;
}
- Array:一种特别的对象(数值下标,内部数据是有序的)
var arr = [3,'abc'];
arr[1];
二、判断
- typeof
可以判断:undefined,string,number,boolean,function
不能判断:null与object,object与array - instanceof
判断对象的具体类型(Object,Array,Function) - ===
可以判断:undefined,null
1、基本
typeof返回数据类型的字符串表达
var a;
console.log(a);//undefined
console.log(typeof a);// "undefined"
console.log(typeof a==="undefined");// true
console.log(a===undefined);// true
console.log(undefined==="undefined");// false
a=3;
console.log(typeof a==="number");// true
a="hello";
console.log(typeof a==="string");//true
a=true;
console.log(typeof a==='boolean');// true
a=null;
console.log(typeof a,a===null);// "object",true
2、对象
var b1 = {
b2:[1,"abc",console.log],
b3:function(){
console,log('b3');
return function(){
return "hi";
}
}
}
console.log(b1 instanceof Object);// true
console.log(b1.b2 instanceof Array);// true
console.log(b1.b2 instanceof Object);// true
console.log(b1.b3 instanceof Function);// true
console.log(b1.b3 instanceof Object);// true
console.log(typeof b1.b2);// "object"
console.log(typeof b1.b3==="function");// true
console.log(typeof b1.b2[2]==="function");// true
b1.b2[2](4);// 4
console.log(b1.b3()());// "hi"
三、扩展
1、undefined与null的区别?
- undefined代表定义未赋值
- null定义并赋值了,只是值为null
var a;
console.log(a);// undefined
a = null;
console.log(a);// null
2、什么时候给变量赋值为null呢?
- 初始赋值,表明将要赋值为对象
- 结束前,让对象成为垃圾对象(被垃圾回收期回收)
var b = null;// 初始赋值为null,表明将要赋值为对象
b = ["hello",12];// 确定对象就赋值
b = null;// 最后让b指向的对象成为垃圾对象(被垃圾回收期回收)
3、严格区别变量类型与数据类型?
- 数据的类型
- 基本类型
- 对象类型
- 变量的类型(变量内存值的类型)
- 基本类型:保存的就是基本类型的数据
- 引用类型:保存的是地址值