两大类
1.基本(值)类型
*string: 任意的字符
*number: 任意的数字
*boolean: true/false
*undefined: undefined
*null: null
2.对象(引用)类型
*Object: 任意对象
*Function: 一种特别的对象(可以执行)
*Array: 一种特别的对象(数值下标,内部有序)
3.判断
*typeof:
*可以判断: undefined / 数值 / 字符串 / 布尔值 / function
*不能判断: null与object object与array
语法:console.log(typeof XXX)
*instanceof:判断**对象**的具体类型
语法:console.log(XXX instanceof 对象)
*===
*可以判断: undefined,null
4.问题:
1. undefined与null的区别?
* undefined代表定义未赋值
* nulll定义并赋值了, 只是值为null
2. 什么时候给变量赋值为null呢?
* 初始赋值, 表明将要赋值为对象
* 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
3. 严格区别变量类型与数据类型?
* 数据的类型
* 基本类型
* 对象类型
* 变量的类型(变量内存值的类型)
* 基本类型: 保存就是基本类型的数据
* 引用类型: 保存的是地址值