参考this,exponentiation operator
将第一个操作数的上升结果返回到第二个操作数,就像Python中的指数运算符一样,它是ECMAScript 2016(ES7)提案的一部分。< / p>
我们知道Python中Boolean
与exponentiation operator
的结果如下:
>>> False ** False == True
True
>>> False ** True == False
True
>>> True ** False == True
True
>>> True ** True == True
True
我想知道Boolean
中是否可以使用exponentiation operator
?如果是这样,可能与Python上面的行为相同吗?
答案 0 :(得分:2)
我不确定你期望得到什么样的答案。如果查看proposal,您会注意到两个操作数首先转换为数字。这意味着false ** false
相当于0 ** 0
。
所以是的,您可以将运算符应用于布尔运算符。就像所有其他运算符一样,这些值将转换为运算符所期望的类型。
结果将始终是一个数字。
但是,当然如果你使用松散比较,那么如果取幂的结果是1
,它将松散地等于true
,如果它是{{1}它将松散地等于0
。
答案 1 :(得分: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
,因为false
与1
不同,true
与{{1}}不同{1}}。