gpt4 book ai didi

javascript - 为什么 "a++ b"有效,而 "a++b"无效?

转载 作者:IT王子 更新时间:2023-10-29 03:10:08 25 4
gpt4 key购买 nike

我在摆弄不同的东西,像这样

var a = 1, b = 2;
alert(a + - + - + - + - + - + - + - + b); //alerts -1

我可以删除空格,它仍然有效。

a+-+-+-+-+-+-+-+b

然后我试了一下

a + + b

它运行并评估为 3,但是当我删除空格时,(a++b) 它不会运行,并且它有一个警告,上面写着“令人困惑的加号。”

我能理解像这样的情况

a+++++b

可以解释为以下任何一种

(a++) + (++b)
(a++) + +(+b)
a + +(+(++b))
a + +(+(+(+b)))

这会令人困惑。

但是在这种情况下

a++b

据我所知,唯一有效的解释方式是

a + +b

为什么 a++b 不起作用?

最佳答案

Javascript 解析器是贪婪的(它每次都匹配最长的有效运算符),所以它从 a++b 中获取 ++ 运算符,使得:

(a++) b

这是无效的。当你输入空格 a++ b 时,解析器会这样解释它:

(a) + (+b)

这是有效的,结果是三个。

请参阅关于 Maximal munch 的维基百科文章了解更多详情。

关于javascript - 为什么 "a++ b"有效,而 "a++b"无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491915/

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