我正在使用 jQuery 动态附加元素,发现在使用 + +
时它显示 NaN
并且未添加下一个文本。
我可以猜测 + +
在这里作为算术加运算符以某种方式工作并返回 NaN
。
这不是增量运算符,因为两个 +
之间有空格。
我的问题是
- 这里实际发生了什么,所以它返回
NaN
- 为什么
+
在被字符串包围时不能用作连接运算符。
$('#message').html('<span>' + + ' new message</span>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message"></div>
在 Node.js 中可以看到相同的行为
> 'a' + + 'b' // aNaN
注意:我知道我已经在此处添加了一个额外的 +
并且删除它对我有用。
最佳答案
原因是因为通过将 +
字符放在字符串之前,您试图将 'b'
字符串转换为数字,这导致 南
。您问题中的代码等同于:
'a' + Number('b')
因此 Number('b')
返回 NaN
,然后将其强制转换为字符串并附加到 a
。这种行为是 JS 固有的,因此所使用的库(无论是 jQuery、节点还是任何其他库)都是无关紧要的。
关于javascript - 为什么++ 在字符串上给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32945493/