为什么下面给出的表达式在javascript中的求值结果为30
Why given below expression evaluates to 30 in javascript?
为什么javaScript中的这个表达式的值为30?
"37" - 7 // evaluates to 30 in javascript
在这种情况下,JavaScript implicity将"37"转换为37(数字)并计算表达式。Bcz"-"运算符与字符串一起使用时没有任何意义。
如果JavaScript想要一个数字,它会尝试将您给它的值转换为数字(如果无法执行有意义的转换,则转换为NaN)。
例如:
15 + "objects" // => "15 objects"
"5" * "6" // => 30 (both strings converts to number)
1 - "x" // => NaN (string can't be converted to a number)
"50" - 20 // => 30 (one string converted to number)
减法运算符将自身两侧的值转换为数字,然后从LRH中减去RHS。
- 设lref是计算AdditiveExpression的结果
- 设lval为GetValue(lref)
- 设rref是计算乘法表达式的结果
- 设rval为GetValue(rref)
- 设lnum为ToNumber(lval)
- 设rnum为ToNumber(rval)
- 返回对lnum和rnum应用减法运算的结果
JavaScript可以根据命令计算表达式。在你的例子中,你使用37(一个字符串)并尝试(我假设去掉7??),所以你会得到30。
由于JavaScript不知道该如何处理这个减号,所以它只需将"37"转换为一个数字,然后将其减去7,结果就是30。如果您使用"37"+7,7将被转换为一个字符串,JavaScript将这两个字符串连接到377中。
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 数组删除重复结果Javascript
- 比较数组中的连续元素不会返回任何结果(javascript)
- split(' ') 函数没有给出正确的结果 Javascript
- 如何产生结果Javascript嵌套缺陷
- I'm试图使用onclick函数显示函数的结果.(javascript)
- 计算结果Javascript中不同数字的数量
- 以 HTML 格式显示计算结果 (javascript)
- 没有得到预期的结果 - javascript
- 从函数返回结果 - JavaScript
- 在一行中返回来自三元的结果(JavaScript)
- 骰子效果-如何在最后显示假结果和真结果(JavaScript)
- WebGL纹理加载结果(Javascript)类型错误
- 限制搜索结果Javascript
- IF语句多个答案-相同的结果Javascript
- 双异步循环,如何保证正确排序顺序的最终结果?(javascript)
- 添加图像到测验结果javascript
- 奇怪的结果javascript比较
- 如何改变iFrame结果JavaScript警告框