gpt4 book ai didi

javascript - 为什么闭包编译器创建 void 0 而不是更短的替代方案?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:30:30 25 4
gpt4 key购买 nike

比较这些字符串:

{}[0]
[][0]
void 0

为什么 Closure Compiler产生

void 0

什么时候可以生成

[][0]

{}[0]

甚至

[].a

正如虎三郎所说哪个短 1 个字符?

最佳答案

最小代码大小并不是 Closure 编译器的唯一目标。另一个目标(我假设)是生成与原始代码一样快的代码。

void 0 可能在各种 JavaScript 运行时更快。它不必构造对象或数组并取消引用不存在的属性。

JavaScript 运行时引擎可能会优化掉 {}[0][][0],但为什么 Closure 编译器要依赖它?如果不对它们进行优化,它们将比 void 0 慢得多。

请记住,JavaScript 代码通常以压缩形式下载,如果 void 0 出现在多个地方,它们很可能会被压缩掉。

另请参阅 Blaise 的回答,了解另一个不使用 {}[0][][0] 的充分理由。

关于javascript - 为什么闭包编译器创建 void 0 而不是更短的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44607683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com