Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_Operators_Bit Manipulation - Fatal编程技术网

Javascript 非数的位运算

Javascript 非数的位运算,javascript,operators,bit-manipulation,Javascript,Operators,Bit Manipulation,不知何故,JavaScript理解了NaN^1,Infinity^1甚至'a'^1(所有计算结果均为1) 管理非数字上的位运算符的规则是什么?为什么上面的所有示例都计算为1?根据,执行此操作时,所有操作数都转换为(首先调用哪个操作数。如果值为NaN或无穷大,则转换为0) 因此:NaN^1=>0异或1=>1在11.10中定义了二进制位运算符的参数转换为32。9.5解释了ToInt32的前两点: 让number作为对输入参数调用ToNumber的结果 如果数字为NaN、+0、-0、+Inf或-Inf

不知何故,JavaScript理解了
NaN^1
Infinity^1
甚至
'a'^1
(所有计算结果均为
1

管理非数字上的位运算符的规则是什么?为什么上面的所有示例都计算为
1

根据,执行此操作时,所有操作数都转换为(首先调用哪个操作数。如果值为
NaN
无穷大
,则转换为
0

因此:
NaN^1
=>
0异或1
=>
1
在11.10中定义了二进制位运算符的参数转换为32。9.5解释了ToInt32的前两点:

  • 让number作为对输入参数调用ToNumber的结果
  • 如果数字为NaN、+0、-0、+Inf或-Inf,则返回+0

  • 那些规格+我认为它是
    按位函数(obj){if(typeof o!=“Number”)返回1;}
    @gdoron:一定喜欢这个规范:-如果他们给我你的代表,我会的<代码>:)值得一提的是,结果取决于第二个操作数的大小。示例:
    “A”^2==2//true
    为完整起见,任何非数字文字字符串都是
    NaN
    ,然后
    “A”^1=1
    @Alexander。几乎所有非数值(所有其他类型,如对象和数组)都计算为NaN<代码>/fndsjkn/^1==1