考虑以下JavaScript代码片段:
并且。
这两个片段之间是否有任何有意义的区别?我之所以这样问,是因为第一个示例会防止Chrome优化包含它的函数,而第二个示例则不会。 此基准测试说明了在许多迭代中的性能差异。
至于我的原始问题,我想知道是否有任何语义上的区别,因为如果没有,我想知道为什么Chrome不会将复合赋值解析为
let x = 0;
x += 1;
并且。
let x = 0;
x = x + 1;
这两个片段之间是否有任何有意义的区别?我之所以这样问,是因为第一个示例会防止Chrome优化包含它的函数,而第二个示例则不会。 此基准测试说明了在许多迭代中的性能差异。
至于我的原始问题,我想知道是否有任何语义上的区别,因为如果没有,我想知道为什么Chrome不会将复合赋值解析为
x = x + 1
形式。
x++
,因为编译器可以轻松地证明你对其没有任何操作,所以可以被丢弃。 - ssube