参考这,exponentiation operator返回将第一个操作数提高到幂第二个操作数的结果,就像Python中的指数运算符,这是ECMAScript 2016 (ES7)提案的一部分。
我们知道在Python中使用Boolean使用exponentiation operator的结果如下:
>>> False ** False == True
True
>>> False ** True == False
True
>>> True ** False == True
True
>>> True ** True == True
True我想知道Boolean是否可以在exponentiation operator中使用?如果是这样的话,Python中的行为是否可以与上面的行为相同?
发布于 2015-11-22 04:24:19
我不知道你想要什么样的答案。如果您查看提案,您将注意到两个操作数都首先被转换为数字。这意味着false ** false等同于0 ** 0。
所以是的,你可以把接线员应用到布尔人身上。与所有其他运算符一样,值被转换为运算符所期望的类型。
结果总是一个数字。
但是,当然,如果您使用松散比较,那么如果指数的结果是1,它将松散地等于true,如果它是0,则它将大致相等于false。
发布于 2015-11-23 08:28:52
是
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并不相同。
https://stackoverflow.com/questions/33851516
复制相似问题