下面的方式 js 引擎内部会不会自动进行优化?

有下面的两段代码

let a = { b: 2}
let a1 = a.b + 1
let a2 = a.b + 2
let a = { b: 2}
let b = a.b
let a1 = b + 1
let a2 = b + 2

这两段代码在引擎内部执行时会不会是一样的?引擎会不会采取效率最优的方式进行执行?

阅读 1.9k
2 个回答

不会优化,眼见为实,直接看编译后的字节码

截屏2023-02-12 09.24.27.png


截屏2023-02-12 09.24.12.png
证明编译后就和你代码中的写的一样的

两段是不一样的,第二段多创建了一个b,就多了一个内存空间,也就是说b和a.b是完全不一样的两个内存,并不因为两个值一样就不创建变量b

引擎当然会采用更优的效率执行只是短短几行简单的代码也没啥可特别优化的

不过纠结这种问题也并不一定会加深对js的理解,专注于也行语法算法会更好,或者就专门了解一下v8的特性也来的更好

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