'a' + + a =? JavaScript的一元加操作
· 2 min read
最近写代码的时候,两个字符串拼接,用加号,加出了bug。
问题
最近写代码,需要动态的拼接几个字符串,最后发现结果里面有NaN,甚是奇怪。
起初以为是被拼接的字符串本身里面有NaN,查过字符串之后,发现并没有。
再仔细查看代码时,发现原本是a + b + c这样的字符串拼接,在复制变量的时候,粘贴成了a + + b + + c。
代码并没有报错。
JavaScript一元加
之前都是直接去搜索引擎里面搜,现在是问一问ai哪里错了。
ai说,是因为一元加操作,+b,由于b不是数字,+b的返回值就是NaN。
去mozilla上面看了一下,确实有一元加这个运算,并且优先级比加法高,所以这段代码是不会报错的。
不得不感叹javascript的神奇。