【发布时间】:2015-09-11 13:15:42
【问题描述】:
我认为undefined(或window.undefined)是一个常量变量,而不是保留字(如NaN、Infinity,不像null)。
当使用UglifyJS压缩一个频繁使用undefined的Javascript文件时,最好声明一个局部变量来保存undefined。
例如:
function main() {
var undefined;
...
}
UglifyJS 会给我:
function main(){var n;...}
编辑
感谢@T.J。克劳德!现在我有自己的选择了。我确定undefined、NaN、Infinity 和window 不是保留字,它们只是“只读”。所以,声明一个本地的undefined 没有问题(即使是严格模式)。我也不担心维护混乱的问题,我只需要写一个// comment或/* comment */来解释这是什么意思。
【问题讨论】:
-
这是一个见仁见智的问题,所以它对 SO 来说是题外话。
-
你的意思是“好”,因为它会产生更小的压缩文件?
-
不,不好。不管它是否有效,避免任何语言保留的单词总是好的。为了画得更好——你可以穿过雷区,你可以避免踩到地雷,你可以到达另一边。或者,您可以使用另一个没有地雷的场地,但仍然可以到达场地的另一边。结果=相同。雷区风险 = 巨大。常规字段的风险 = 无。轻松选择。没有必要往下看上膛的枪管,是吗? :)
-
我想应该问at Code review
-
“我确定 undefined、NaN、Infinity 和 window 不是保留字” 没错。 Here's the list of reserved words,here's where the now-read-only globals
Infinity,NaN, andundefinedare defined。window只在浏览器上定义,也是变量,不是关键字。
标签: javascript undefined uglifyjs