如果我有以下代码
var num = 15 % 2 + 6 * 4;
例如...我想知道输出是什么,特别是我想知道模数的优先顺序(由%
象征)。取模是在加法和乘法运算之前还是之后进行?
Edit:我已经看过人们将我链接到的文章
MDN 运算符优先级
在提出问题之前已经这样做了,但不幸的是它没有包含足够的信息来完全回答我的问题,因此我在这里问。只是为了节省人们再次链接的精力。
Update: 正在调查关联性从一个提议的答案下面的评论中的讨论表明,该问题与关联性相关(如果您原谅意外的双关语)。
Update: 语法编辑(^_^?)
从技术上讲,它是余操作员(比我更多的数学头脑认为模数会以不同的方式处理符号差异),并且它具有与乘法和除法相同的优先级和结合性。
So
var num = 15 % 2 + 6 * 4;
is
var num = (15 % 2) + (6 * 4);
MDN has 一篇方便的文章关于运算符优先级和结合性。
回复您对该问题的评论:
...我明白了num
的变量值25
使用示例代码,但是var num = 3 * 15 % 2 + 6 * 4;
也导致num
变量其中一个console.log
显示为还具有以下值25
...
那是因为两者15 % 2 + 6 * 4
and 3 * 15 % 2 + 6 * 4
are 25
。让我们来分解一下:
你的第一个例子:15 % 2 + 6 * 4
15 % 2 + 6 * 4
1 + 6 * 4
1 + 24
25
你的第二个例子:3 * 15 % 2 + 6 * 4
3 * 15 % 2 + 6 * 4
45 % 2 + 6 * 4
1 + 6 * 4
1 + 24
25
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)