gpt4 book ai didi

javascript - UglifyJS 改变代码行为

转载 作者:行者123 更新时间:2023-11-30 00:10:03 26 4
gpt4 key购买 nike

我有以下代码(为方便讨论而简化):

var a = 1;
var b = [];
if (checkIfAisOne(a)) {
b = ['something']
}
console.log(b);
//['something']

然后有一个 Grunt Uglify 任务将此代码转换为:

checkIfAisOne(a) || (b = ['something']), console.log(b);
// []

因为表达式的第一部分为真,第二部分(在 || 之后)没有执行,因此 b 保持不变。

因此,丑化代码与非丑化代码显示不同的输出。

这是一个已知问题吗?错误?如何预防,是否有解决此问题的选项/设置?

最佳答案

最新的 uglifyJS 正在产生这个输出:

var a=1,b=[];checkIfAisOne(a)&&(b=["something"]),console.log(b);

使用 https://github.com/mishoo/UglifyJS2/commit/a0e03c9df47c411a40bceef02af2ce3dd1a329cc ,它于 2016 年 3 月 5 日提交,但在 2016 年 4 月 5 日的 repo 中合并。 UglifyJS v2.6.2 的输出相同。

UglifyJS v2.6.2 随 grunt-contrib-uglify 1.0.0 及更高版本一起提供。因此,请在必要时升级 grunt-contrib-uglify。

如果输出仍然存在问题,请随时在 https://github.com/mishoo/UglifyJS2 上提出问题使用代码片段

关于javascript - UglifyJS 改变代码行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36866972/

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