Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
混淆字符串连接的JavaScript语句_Javascript_Node.js - Fatal编程技术网

混淆字符串连接的JavaScript语句

混淆字符串连接的JavaScript语句,javascript,node.js,Javascript,Node.js,我正在开发一个node.js站点,我犯了一个复制粘贴错误,导致了下面一行(针对这个问题进行了简化): 它不会崩溃,x=NaN。现在我已经修复了这个bug,我很好奇这里发生了什么,因为如果我删除+符号之间的空格,我会得到一个错误(SyntaxError:invalid increment operand) 我的问题是:有人能向我解释一下语句中发生了什么,以及没有任何东西(两个+符号之间的空格)是如何将错误变为NaN的吗? 另外,我不确定这是否应该放在这里或programers.stackoverf

我正在开发一个node.js站点,我犯了一个复制粘贴错误,导致了下面一行(针对这个问题进行了简化):

它不会崩溃,x=NaN。现在我已经修复了这个bug,我很好奇这里发生了什么,因为如果我删除+符号之间的空格,我会得到一个错误(SyntaxError:invalid increment operand)

我的问题是:有人能向我解释一下语句中发生了什么,以及没有任何东西(两个+符号之间的空格)是如何将错误变为NaN的吗?


另外,我不确定这是否应该放在这里或programers.stackoverflow.com。如果我在错误的网站上发布,请告诉我

它的解释如下:

var x = "hi" + (+"mom")

前缀
+
试图将字符串强制为数字
Number('mom')
NaN
,所以在Firefox中
+'mom'
也是
NaN

,这会导致
“hiNaN”
,这是合理的。我的完全猜测是空格被解释为0或其他什么把它擦掉。这是“嗨”(+“妈妈”)的结果,我想(+“妈妈”)被解读为积极的“妈妈”,因此NaN。@Sirko感谢您的快速回复。它以南(或“日南”)的形式回归的事实是合理的。我只是好奇它是如何到达南而不是崩溃的。javascript quark在做什么?@AlexeyLebedev感谢您的回答,但请您再解释一下您的评论好吗?在
a++b
中,您有加法运算符和一元
+
运算符。更多信息:好的,这是有道理的。谢谢你的解释!“parseFloat('mom')是NaN,所以+'mom'也是NaN。”相反,“Number('mom')是NaN,所以+'mom'也是NaN。”因为
parseFloat('5foo')
5
,但是
+'5foo'
仍然是
NaN
var x = "hi" + (+"mom")