场景一:
let a
typeof a // undefined
js引擎会为undefined类型的变量a分配存储数据的内存吗?如果分配,内存的大小是多少?
场景二:
let a = 1 + 'hello world' + true
js引擎是先为变量a分配内存还是先计算右边的值再分配内存?变量a分配内存的大小是如何计算的?像1、'hello world'、true这样的字面量值是否会分配独立的内存空间?
场景一:
let a
typeof a // undefined
js引擎会为undefined类型的变量a分配存储数据的内存吗?如果分配,内存的大小是多少?
场景二:
let a = 1 + 'hello world' + true
js引擎是先为变量a分配内存还是先计算右边的值再分配内存?变量a分配内存的大小是如何计算的?像1、'hello world'、true这样的字面量值是否会分配独立的内存空间?
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
js在声明变量的时候就会在栈内存中开辟一个单元空间留给变量(栈内存是一个线性的、规则的、大小基本固定的、有序的排列起来的一块块内存空间,每个单元大小固定,规则有序的排列下来),具体发现我不知道。
关于场景二,会先声明变量,再运算右边的表达式,因为=号没有+号优先级高,最后为变量赋值。做运算的时候右边的三个数据都会在临时空间中各占一个空间,运算结束,生成一个总的数据并存储在变量的单元空间内。右边的数据会等待销毁。