JavaScript中布尔值的指数运算符

Exponentiation operator for Boolean in JavaScript?

本文关键字:指数 运算符 布尔值 JavaScript      更新时间:2023-09-26

参考此,exponentiation operator返回将第一个操作数提升为第二个操作数的幂的结果,类似于Python中的求幂运算符,它是ECMAScript 2016(ES7)方案的一部分。

我们知道在Python中Booleanexponentiation operator的结果如下:

>>> False ** False == True
True
>>> False ** True == False
True
>>> True ** False == True
True
>>> True ** True == True
True

我想知道Boolean是否可以用于exponentiation operator?如果是这样的话,在Python中会出现与上面相同的行为吗?

我不确定你期望得到什么样的答案。若你们看一下这个建议,你们会发现两个操作数都是先转换成数字的。这意味着false ** false等同于0 ** 0

因此,是的,您可以将运算符应用于布尔值。与所有其他运算符一样,值也会转换为运算符所期望的类型。

结果总是一个数字。

然而,当然,如果你使用松散比较,那么如果求幂的结果是1,它将松散地等于true,如果它是0,它将宽松地

console.log(false ** false == true);  // true
console.log(false ** true == false);  // true
console.log(true ** false == true);  // true
console.log(true ** true == true);  // true

如果使用===,则所有这些都将是false,因为0false不同,1true不同。