请帮助我理解下面的代码,如何计算'a','b'和'c'的值.
var a = (1,5 + 10) * 5; //returns 75
var b = (0, "150", 30, 20, 38 + 10); //returns 48
var c = (5 & 3 + 10); // returns 5
Run Code Online (Sandbox Code Playgroud)
a设定为(1, 5 + 10) * 5.在顶层,这是一个乘法的表达,乘以1, 5 + 10通过5.1, 5 + 10使用首先计算的逗号运算符,1丢弃它,然后计算5 + 10,计算结果15,然后乘以5,屈服75.
b类似的工作,除了它有很多逗号.它评估了很多东西,丢弃了所有结果,最后继续评估最后一个,38 + 10给出了结果48.
c评估5 & 3 + 10.&优先级低于+,所以它实际上是5 & (3 + 10).3 + 10是13,1101二进制; 5是101二进制的.对这两个值进行按位AND会产生101,这5也就是结果.
| 归档时间: |
|
| 查看次数: |
30 次 |
| 最近记录: |