JavaScript中布尔值的求幂运算符?
请参阅,JavaScript中布尔值的求幂运算符?,javascript,exponentiation,ecmascript-2016,Javascript,Exponentiation,Ecmascript 2016,请参阅,求幂运算符返回将第一个操作数提升为二次幂的结果,就像Python中的求幂运算符一样,这是ECMAScript 2016(ES7)方案的一部分 我们知道Python中使用求幂运算符的布尔运算的结果如下: >>> False ** False == True True >>> False ** True == False True >>> True ** False == True True >>> True ** Tr
求幂运算符
返回将第一个操作数提升为二次幂的结果,就像Python中的求幂运算符一样,这是ECMAScript 2016(ES7)方案的一部分
我们知道Python中使用求幂运算符的布尔运算的结果如下:
>>> False ** False == True
True
>>> False ** True == False
True
>>> True ** False == True
True
>>> True ** True == True
True
我想知道
布尔值
是否可以用于求幂运算符
?如果是这样的话,在Python中是否可以实现与上面相同的行为?我不确定您希望得到什么样的答案。如果仔细观察,您会注意到两个操作数都首先转换为数字。这意味着false**false
等同于0**0
是的,你可以把操作符应用到布尔值上。与所有其他运算符一样,这些值将转换为运算符期望的类型
结果总是一个数字
然而,当然,如果你使用松散比较,那么如果求幂的结果是
1
,它将松散地等于true
,如果它是0
,它将松散地等于false
,我不确定你期望的答案是什么。如果仔细观察,您会注意到两个操作数都首先转换为数字。这意味着false**false
等同于0**0
是的,你可以把操作符应用到布尔值上。与所有其他运算符一样,这些值将转换为运算符期望的类型
结果总是一个数字
但是,当然,如果使用松散比较,那么如果求幂的结果是1
,它将松散地等于true
,如果是0
,它将松散地等于false
如果您使用==
所有这些都将是false
,因为0
与false
不一样,1
与true
不一样
如果您使用==
所有这些都将是false
,因为0
与false
不一样,1
与true
不一样Tryalert(Math.pow(10,2))
Tryalert(Math.pow(10,2))
console.log(false ** false == true); // true
console.log(false ** true == false); // true
console.log(true ** false == true); // true
console.log(true ** true == true); // true