有意思的javascript笔误

前两天被拉去查一个很怪的错,描述是“一个js文件压缩前和压缩后执行结果不一样”

查了很久锁定以下代码

	s = s + +("...")

一看就是笔误了,压缩后为

	s=s++("...")

空格被压缩后显然会抛语法错。但没压缩能正常运行就有点意思了,做了以下尝试

+('...')
> NaN
-('...')
> NaN
'1' + +('...')
> "1NaN"
+(NaN)
> NaN

那个多出来的加号,被解释成取数字正值,就像减号在数字前是取数字的负值一样。

comments powered by Disqus