数据类型的分类和判断
分类
- 基本(值)类型
- Number ----- 任意数值 -------- typeof
- String ----- 任意字符串 ------ typeof
- Boolean ---- true/false ----- typeof
- undefined — undefined ----- typeof/===
- null -------- null ---------- ===
- 对象(引用)类型
- Object ----- typeof/instanceof
- Array ------ instanceof
- Function ---- typeof
判断
- typeof
- 可以判断: undefined/ 数值 / 字符串 / 布尔值 / function
- 不能判断: null与object object与array
- instanceof
- ===
instanceof
判断是否属于某个对象的实例
var b1={
b2: [1,2,"asd"],
b3: function () {
console.log('b3')
return function () {
return 'zhang'
}
}
}
console.log(b1 instanceof Object, b1 instanceof Array)
console.log(b1.b2 instanceof Array, b1.b2 instanceof Object)
console.log(b1.b3 instanceof Function, b1.b3 instanceof Object)
console.log(typeof b1.b3==='function')
console.log(typeof b1.b2[2]==='function')
b1.b2[2](321)
console.log( b1.b3()() )
undefined与null的区别?
- undefined代表定义未赋值
- nulll定义并赋值了, 只是值为null
什么时候给变量赋值为null呢?
- 初始赋值, 表明将要赋值为对象
- 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
严格区别变量类型与数据类型?
- 数据的类型
- 基本类型
- 对象类型
- 变量的类型(变量内存值的类型)
- 基本类型: 保存就是基本类型的数据
- 引用类型: 保存的是地址值