JS知识点1
1. 为什么 null 用 typeof 检测是Object ?:
- 所有的数据类型值在计算机中存储的都是按照"二进制"存储的
- null -> 000000
- 只要是对象都是以000开始的
- typeof检测的时候,是根据计算机存储的二进制的值来检测的
2. js中的数据类型
- 基本数据类型(值类型、原始类型)
- number
- NaN
- Infinity
- string
- boolean
- null
- undefined
- symbol (Symbol() 唯一值,不能呗new)
- static Symbol
- Symbol.prototype
- bigint (超大数字(数字超过+(-)2^53最大安全数字时使用) => 数字后 + n)
- number
- 引用数据类型
- object
- 普通对象
- 数组对象
- 正则对象
- 日期对象
- JSON
- Set
- Map
- ......
- function
- 普通函数
- 构造函数
- 箭头函数
- 生成器函数
- ......
- object
3. JS 代码运行环境
- 浏览器
- node
- webview
- ...... (浏览器运行JS代码会在计算机的内存中分配楚一块栈内存(Stack)即执行环境栈(ECStack)用来供代码执行)
4. var[变量] = [值] 的过程
-
先创建值:
- 基础数据类型值,直接存栈内存
- 引用数据, 开辟一个单独时空间(堆内存 Heap)用来存储值
-
声明变量(declare) 存放到当前上下文的变量对象中(VO/AO)
-
让变量和值关联起来(赋值 defined)