字符串和数字之间的运算可用吗?

时间:2018-12-05 04:59:35

标签: javascript react-native

'4'/ 2的结果是什么?

"4" / 2 = 2

对吗?

为什么可以进行此操作?

如何解释此操作?

2 个答案:

答案 0 :(得分:1)

根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

中的描述

===运算符可用于比较值和同时键入两者。

对于您的情况,“ 4”是字符串类型,而4是数字。因此,“ 4”和4的类型不相等。 因此,“ 4” === 4将返回false。

就像使用==运算符一样,它不比较类型而是仅比较值,将返回true。 因此,“ 4” == 4将返回true。

答案 1 :(得分:0)

是的,是的。 /运算符在计算之前将操作数转换为数字。即,当传递字符串时,它隐式读取数字。因此,无论操作数是什么,其结果始终是Number。

根据ECMAScript规范:

  

11.5 Multiplicative Operators

     

(...)

     

1。留下的是对MultiplicativeExpression求值的结果。

     

2。令leftValue为GetValue(left)。

     

3。设权利为评估UnaryExpression的结果。

     

4。令rightValue为GetValue(right)。

     

5。 让leftNum为ToNumber(leftValue)。

     

6。 让rightNum为ToNumber(rightValue)。

     

7。返回对leftNum和rightNum应用指定操作(*,/或%)的结果。

关于“为什么?”,因为它是weakly typed languageNetscape开发人员将它们设计为tolerant about types)。