我仍然对javascript中的求幂运算符的计数操作感到困惑
一个运算符优先权的工作流程是如何实现的,即求幂我仍然对这些工作如何解释它的工作方式感到困惑。2**3的结果是8,因为我仍然对javascript中的求幂运算符的计数操作感到困惑,javascript,Javascript,一个运算符优先权的工作流程是如何实现的,即求幂我仍然对这些工作如何解释它的工作方式感到困惑。2**3的结果是8,因为 2 * 2 * 2 === 8 i、 e.2自身乘以三等于8 同样地,2**8为256,因为 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 === 256 不过,该运算符有些“奇怪”,因为它是右关联的,而所有其他数学运算都是左关联的: x / y / z === (x / y) / z x - y - z === (x - y) - z // but
2 * 2 * 2 === 8
i、 e.2自身乘以三等于8
同样地,2**8
为256,因为
2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 === 256
不过,该运算符有些“奇怪”,因为它是右关联的,而所有其他数学运算都是左关联的:
x / y / z === (x / y) / z
x - y - z === (x - y) - z
// but
x ** y ** z === x ** (y ** z)
而且,**
运算符对一元运算符的使用也很奇怪
-2**8 // syntax error
(-2)**8 // ok, value is 256
-(2 ** 8) // ok, value is -256
还要注意的是,虽然将
x**y
解释为“x乘以自身y倍”对于y
的非负整数值是有意义的,但求幂运算符更为一般,例如x**0.5
与Math.sqrt(x)相同
你能给我们一个你感到困惑的例子吗?你在问什么?我对2**3的运算感到困惑,为什么它的8个结果?你是在问数学运算本身还是运算符的优先级?2**3是2乘以3的幂,或2*2*2,或8。“2**3为什么它的结果是8”,因为2*2*2=8。