有点我使用JavaScript并且在工作时遇到了一个非常奇怪的情况,有一点时间,我已经修复了我的项目,但我也可以复制。
问题在于通过连接解析多行上的字符串。
我的测试用例如下:
> var a = "s1"
undefined
> var b = "s2"
undefined
> a + b
's1s2'
> a+
... +b
's1NaN'
> a++b
SyntaxError: Unexpected identifier
(其中第二个基本上是一个命令,一个++ b,在+和+ b之间有换行符。)
第二个测试用例的行为应该与第三个测试用例完全相同吗? 这在Chrome 39和Firefox 34中都会发生。
此行为是否符合标准?我错过了一些我没想过的东西吗?
答案 0 :(得分:2)
a+
+b
实际上被视为
a + (+b)
由于b
不是数字,因此b
的数值由{one} +运算符给出NaN
。
在最后一种情况下,a++b
,它被评估为(a++)b
。由于JavaScript在++
运算符之后不期望任何内容,因此它失败并显示错误
SyntaxError: Unexpected identifier