我输入的内容几乎相同,但是以下2种计算的类型不同,有人可以指出原因吗?
<html>
<head></head>
<body>
<script type="text/javascript">
console.log(typeof 1/0);
console.log(typeof (1/0));
</script>
</body>
</html>
我相信在两种情况下答案都是1/0 =>'Infinity',所以为什么我得到不同的结果。
最佳答案
JavaScript运算符优先级:MDN documentation
如您所见,typeof
的优先级为16,而除法的优先级为14。这意味着,在不带括号的情况下,将首先评估typeof
。相关的运算符优先级为:
分组:20
类型:16
师:14
我们将您的表达式评估为:
typeof 1/0 --> "number"/0 --> "NaN"
typeof (1/0) --> typeof Infinity --> "number"
在第一行,
typeof
具有更高的优先级,因此我们首先评估typeof 1
。结果为“数字”,不能除以零,因此得到NaN。在第二行中,首先评估
(1/0)
,因为Grouping具有最高优先级(20)。计算结果为NaN,其类型为“数字”。关于javascript - 为Javascript中几乎相同的输入获取不同的typeof,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50450372/