Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中布尔值的求幂运算符?_Javascript_Exponentiation_Ecmascript 2016 - Fatal编程技术网

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
不一样
Try
alert(Math.pow(10,2))
Try
alert(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