打算认真梳理下JS了,先从基础数据类型来吧
数据类型分类
- 基本类型
- String: 任意字符串
- Number: 任意的数字
- boolean: true false
- undefined :undefined
- null :null
- 对象(引用类型)
- Object:任意对象
- Function: 一种特别的对象(可以执行)
- Array:一种特别对象(数值下标属性,内部数据是有序的)
判断
- typeof 返回数据类型的字符串表达 可以判断undefined/数值/字符串/布尔值function 不可以判断 null 和 object object和array
- instanceof 判断对象具体类型
- === 可以判断undefined/null
举个栗子
var a;//
console.log(a)//undefined
tyoe of(a) // 'undefined'
var a =3
console.log(typeof a ==='number')//true
a ='agg'
console.log(typeof a ==='String')//true
a =null
console.log(typeof a)//'object'
console.log(a === null)//true
//2. 对象
var b1 ={
b2 :[1,'abc',console.log],
b3:function(){
console.log('b3')
}
}
console.log(b1 instanceof Object, b1 instanceof Array)// true false
console.log(b1.b2 instanceof Object, b1.b2 instanceof Array)// true true
console.log(b1.b3 instanceof Object, b1.b2 instanceof Function)// true true
console.log(typeof b1.b3 ===='function')// true
- 问题
1. undefined 和nul的区别
* undefined 定义未赋值
* null 定义并赋值了,只是值为null
2. 什么时候给变量赋值为null
* 把变量赋值为对象 初始赋值为null表明将要赋值为对象
var obj =null
* 结束前,赋值null让对象成为垃圾对象,被垃圾回收器回收
3. 严格区分变量类型与数据类型
*数据类型
* 基本数据类型
* 对象类型
*变量类型 (变量类型值的类型)
* 基本类型 :报错的就是基本类型的数据
* 引用类型 :保存的是地址值