Skip to main content

'a' + + a =? JavaScript的一元加操作

· 2 min read

最近写代码的时候,两个字符串拼接,用加号,加出了bug。

问题

最近写代码,需要动态的拼接几个字符串,最后发现结果里面有NaN,甚是奇怪。

起初以为是被拼接的字符串本身里面有NaN,查过字符串之后,发现并没有。

再仔细查看代码时,发现原本是a + b + c这样的字符串拼接,在复制变量的时候,粘贴成了a + + b + + c

代码并没有报错。

JavaScript一元加

之前都是直接去搜索引擎里面搜,现在是问一问ai哪里错了。

ai说,是因为一元加操作,+b,由于b不是数字,+b的返回值就是NaN。

去mozilla上面看了一下,确实有一元加这个运算,并且优先级比加法高,所以这段代码是不会报错的。

不得不感叹javascript的神奇。