JS中的数据类型
- 基本数据类型
- number (NaN, infinity)
- string
- boolean
- null
- undefined
- symbol
- bigint
- 引用数据类型
- object
- function
数据类型检测
- typeof 检测数据类型的逻辑运算符
- instanceof 检测是否为个类的实例
- constructor 检测构造函数
- Object.prototype.toString.call 检查数据类型的
typeof [value] 返回当前值的数据类型 "数据类型"
- 返回的结果都是字符串
- typeof的局限性(bug):
- typeof null =>“object” (前三位为0都是object)
- typeof 不能细分对象类型(检测普通对象或者数组对象等都是"object")
把其他数据类型转换为数字的方法
- 强转换(基于底层机制转换) Number[(value)]
- 一些隐性转换都是基于Number完成的
- Number直接调用浏览器最底层的数据类型检测机制来完成
- ture => 1,false => 0,null => 0,undefined = > NaN,
- 字符串中必须保证全部都是有效数字才会转换为数字,否则都是NaN
- 弱转换(基于一些额外的方法转换)parseInt()/parseFloat()
JS之所以能过在浏览器中运行,是因为浏览器给JS提了执行的环境 => 栈内存(Stack)
栈内存:提供代码执行的环境
堆内存:存放东西(存放的是属性方法)