js数据类型
javascript数据类型
- key,value 都存储在栈中 常用数据类型
- undefined 未定义
- String 字符串
- Number数字
- Boolean布尔
- Symbol 符号
- 引用类型
- 栈中存储 内存地址
- 堆中存储 实际的值
- Array 数组
- object对象
- null空
- function函数
隐式转换
- 转布尔
- 非空字符串 转布尔为true
- 空字符串转布尔为false
- 转字符
- 都会转换为字符串
- 转数字
- true 1 false 0
- 数字会把转换为数字类型
- 否则NaN
条件值
- 条件值
- var a=true&&88 值为88
- var a=false&&88 值为false
- var a=""&&false 值为""
- var a=false&&88 值为88
- var b=15||88 值为15
- var b="" || false 值为false
判断数据类型的方法
- typeof
- typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型
- instanceof
- 是用来判断A是否为B的实例,表达式为A instanceof B,如果A是B的实例 则返回true,否则返回false
- constructor
-
null 和 undefined 是无效的对象,因此是不会有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。
-
函数的 constructor 是不稳定的,这个主要体现在自定义对象上,当开发者重写 prototype 后,原有的 constructor 引用会丢失,constructor 会默认为 Object
-
本身是prototype对象的一个属性,默认指向prototype属性所在的构造函数,此处我们用来判断数据类型。返回boolean值
- toString
- 是object的原型方法,调用该方法,默认返回当前对象的[[class]] 这是一个内部属性,其格式为[object xxx],其中xxx就是对象的类型 对于object对象,直接调用toString() 就能返回[object object] 而对于其他对象,则需要通过call/apply来调用才能返回正确的类型信息