为什么在字符串上+ +给出奇怪的结果

杜沙尔

我正在使用jQuery动态附加元素,发现使用时+ +会显示NaN且未添加下一个文本。

我可以猜测这在某种程度上+ +可以作为算术加运算符并返回NaN

这不是增量运算符,因为两者之间有空间+

我的问题是

  1. 这里实际发生什么,所以返回 NaN
  2. +当它被字符串包围时,为什么这里不能用作连接运算符。

$('#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

注意:我知道我在+这里添加了一个多余的东西,将其删除对我来说是有效的。

罗里·麦克罗森(Rory McCrossan)

原因是因为您将+字符放在字符串之前,试图将'b'字符串转换为数字,结果为NaN您问题中的代码与此等效:

'a' + Number('b')

因此,Number('b')返回NaN,然后其强制转换为字符串并附加到a此行为是JS固有的,因此所使用的库(无论是jQuery,节点还是其他任何库)均无关紧要。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么min()给出奇怪的结果?

char +字符串给出奇怪的结果

str.startswith() 在数字列表上作为字符串给出奇怪的结果

为什么 MATLAB 中的日期时间会给出奇怪的结果?

为什么count()方法给出奇怪的答案?

为什么printf()在python中给出奇怪的输出?

为什么C程序使用Scanf给出奇怪的输出?

ContainsRune给出奇怪的结果

为什么在字符串上调用属性不会给出错误?

C-为什么在printf()中输出奇怪的结果

JSON对象更新给出奇怪的结果

弹性搜索给出奇怪的结果

LINQ to Entities条件给出奇怪的结果

加减双打给出奇怪的结果

imagefttext()和imagettftext()给出奇怪的结果

C程序给出奇怪的结果

SELECT IN 与空子查询,给出奇怪的结果

当“%I64d”在同一格式字符串中多次使用时,为什么给出奇怪的输出?

有人可以解释为什么.asp链接给出奇怪的行为?

为什么这个简单的 lambda 函数会给出奇怪的输出?

为什么程序中的 for 循环无法正常工作。它显示正确的输出但给出奇怪的输出

如果在字符串文字中调用,为什么在字符串上调用removeAtIndex:会反转结果?

字符串比较中的数字超过“ 1000”会得出奇怪的结果

为什么将这两次相减(在1927年)会得出奇怪的结果?

在字符串上分割给出错误的结果

重定向到Powershell核心中的文件时,写错误会给出奇怪的字符

为什么编写此程序会输出奇怪的字符串?

为什么浮点数据类型在使用大量数字时会给出奇怪的输出

使用rdtsc在Intel上进行汇编程序基准测试会给出奇怪的答案,为什么?