'4'/ 2的结果是什么?
"4" / 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规范:
(...)
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 language(Netscape开发人员将它们设计为tolerant about types)。