数据类型的分类和判断
分类
- 基本(值)类型
- 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
- 判断对象的具体类型
- ===
- 可以判断: undefined, null
instanceof
判断是否属于某个对象的实例
var b1={
b2: [1,2,"asd"],
b3: function () {
console.log('b3')
return function () {
return 'zhang'
}
}
}
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.b3==='function') // true
console.log(typeof b1.b2[2]==='function') // true
b1.b2[2](321) // 321
console.log( b1.b3()() ) // zhang
undefined与null的区别?
- undefined代表定义未赋值
- nulll定义并赋值了, 只是值为null
什么时候给变量赋值为null呢?
- 初始赋值, 表明将要赋值为对象
- 结束前, 让对象成为垃圾对象(被垃圾回收器回收)
严格区别变量类型与数据类型?
- 数据的类型
- 基本类型
- 对象类型
- 变量的类型(变量内存值的类型)
- 基本类型: 保存就是基本类型的数据
- 引用类型: 保存的是地址值