Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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的不一致行为';s+;操作人员_Javascript - Fatal编程技术网

JavaScript的不一致行为';s+;操作人员

JavaScript的不一致行为';s+;操作人员,javascript,Javascript,为什么会这样 2++3 返回5,但是 '2837363'+'/' 返回 “2837363NaN”?甚至“/”也丢失了 为什么编程语言接受这种语法而不抛出语法错误?它什么时候假设,空的地方计算为0(第一个示例),什么时候计算为NaN(第二个示例)?在变量前面加上+意味着类型强制为数字类型 + 5 => 5 + '5' => 5 +'a' => NaN +'/' => NaN 执行+'/'操作时,结果是NaN在变量前面加上+意味着将类型强制为数字类型 + 5 => 5

为什么会这样

2++3

返回
5
,但是

'2837363'+'/'

返回

“2837363NaN”
?甚至“/”也丢失了


为什么编程语言接受这种语法而不抛出语法错误?它什么时候假设,空的地方计算为0(第一个示例),什么时候计算为NaN(第二个示例)?

在变量前面加上
+
意味着类型强制为数字类型

+ 5 => 5
+ '5' => 5
+'a' => NaN
+'/' => NaN

执行
+'/'
操作时,结果是
NaN

在变量前面加上
+
意味着将类型强制为数字类型

+ 5 => 5
+ '5' => 5
+'a' => NaN
+'/' => NaN

当您执行
+'/'
时,结果是
NaN

您是对的,现在我可以看到:
2++3
计算为
2+(+3)
,第二个示例类似。谢谢,我知道一元加号,但我在这里没认出。我想,我的表达式可能类似于
2+something+3
,但它当然不是,现在我可以看到。它将值转换为一个数字,而不是一个整数。
+'0.1322'=>0.1322
你的权利,感谢你指出@FelixKlingYou是对的,现在我可以看到:
2++3
计算为
2+(+3)
,第二个例子类似。谢谢,我知道一元加号,但我在这里没认出。我想,我的表达式可能类似于
2+something+3
,但当然不是,现在我可以看到。它将值转换为一个数字,而不是一个整数。
+'0.1322'=>0.1322
您的权利,感谢您指出@felixklingaah。。。javascript:)你应该喜欢它才能理解它。啊。。。javascript:)你应该喜欢它才能理解它。