0

请参阅thisexponentiation operator返回将第一个操作数提升为第二个操作数的幂的结果,就像 Python 中的幂运算符一样,它是 ECMAScript 2016 (ES7) 提案的一部分。

我们知道 Python 中Booleanwith的结果exponentiation operator如下:

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

我想知道是否Boolean可以在exponentiation operator? 如果是这样,在 Python 中是否有与上述相同的行为?

4

2 回答 2

2

我不确定你期望什么样的答案。如果您查看提案,您会注意到两个操作数都首先转换为数字。这意味着false ** false相当于0 ** 0

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

结果将始终是一个数字。

但是,当然如果你使用松散比较,那么如果取幂的结果是1,它就会松散地相等true,如果是0,它就会松散地相等false

于 2015-11-22T04:24:19.403 回答
1

是的

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因为0与.false1true

于 2015-11-23T08:28:52.400 回答