js数据类型
created on 21-03-03
分类
- 基本(值)类型
- String:任意字符串
- Number:任意的数字
- Boolean:true/false
- undefined:undefined
- Null:null
- 对象(引用)类型
- Object:任意对象
- Function:一种特别的对象(可以执行)
- Array:一种特别的对象(数值下标,内部数据是有序的)
- 基本(值)类型
判断
- typeof
- 可以判断:undefined/数值/字符串/布尔值/function
- 不能判断:null与object 、 object与array
- instanceof
- 判断对象的具体类型
- ===
- 可以判断:undefined,null
//1、值 var a; console.log(a , typeof a , typeof a === 'undefined', a === undefined); //undefined "undefined" true true a = 4; console.log(typeof a === 'number'); //true a = 'sjjcd'; console.log(typeof a === 'string'); //true a = true; console.log(typeof a === 'boolean'); //true a = null; console.log(typeof a, a === null); //object true typeof不能判断object与null var arr = []; console.log(typeof arr,arr === Array); //object false //2、对象 var b1 = { b2: [1, 'abc',console.log], b3: function(){ console.log('b3'); return function(){ return 'hsjdsdnc'; } } } //a instanceof b:a是b的实例 //instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上 console.log(b1 instanceof Object, b1 instanceof Array); //true false console.log(b1.b2 instanceof Array, b1.b2 instanceof Object)//true true console.log(b1.b3 instanceof Function, b1.b3 instanceof Object)//true true console.log(typeof b1.b2 === 'array'); //false,typeof不能判断object与arry console.log(typeof b1.b3 === 'function'); //true console.log(typeof b1.b2[2]); //function console.log(typeof b1.b2[2] === 'function',typeof b1.b2[2] === 'object'); //true false b1.b2[2](4); //4 console.log(b1.b3()()); //b3 hsjdsdnc- typeof
undefined与null的区别?
- undefined代表定义未赋值
- null定义并赋值,值为null
var a; console.log(a); //undefined a = null; console.log(a); //null
什么时候给变量赋值为null
- 初始赋值,表明将要赋值为对象
- 结束前,让对象成为垃圾对象(被垃圾回收器回收)
var b = null; //初始赋值为null,表明将要赋值为对象 //函数、数组都是对象 b = ['ascf', 12]; b = null; //让b指向的对象成为垃圾对象(被垃圾回收器回收)
严格区别变量类型与数据类型(了解)
- 数据的类型
- 基本类型
- 对象类型
- 变量的类型(变量内存值的类型)
- 基本类型:保存基本类型的数据
- 引用类型:保存地址值
- var a = {} //a保存的是对象的内存地址值
- 数据的类型
查看11道真题和解析