JavaScript内存分配

场景一:

    let a
    typeof a // undefined

js引擎会为undefined类型的变量a分配存储数据的内存吗?如果分配,内存的大小是多少?

场景二:

    let a = 1 + 'hello world' + true

js引擎是先为变量a分配内存还是先计算右边的值再分配内存?变量a分配内存的大小是如何计算的?像1、'hello world'、true这样的字面量值是否会分配独立的内存空间?

阅读 2.2k
1 个回答

js在声明变量的时候就会在栈内存中开辟一个单元空间留给变量(栈内存是一个线性的、规则的、大小基本固定的、有序的排列起来的一块块内存空间,每个单元大小固定,规则有序的排列下来),具体发现我不知道。

关于场景二,会先声明变量,再运算右边的表达式,因为=号没有+号优先级高,最后为变量赋值。做运算的时候右边的三个数据都会在临时空间中各占一个空间,运算结束,生成一个总的数据并存储在变量的单元空间内。右边的数据会等待销毁。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题