Javascript 非数的位运算
不知何故,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
NaN^1
,Infinity^1
甚至'a'^1
(所有计算结果均为1
)
管理非数字上的位运算符的规则是什么?为什么上面的所有示例都计算为1
?根据,执行此操作时,所有操作数都转换为(首先调用哪个操作数。如果值为NaN
或无穷大
,则转换为0
)
因此:NaN^1
=>0异或1
=>1
在11.10中定义了二进制位运算符的参数转换为32。9.5解释了ToInt32的前两点:
那些规格+我认为它是
按位函数(obj){if(typeof o!=“Number”)返回1;}
@gdoron:一定喜欢这个规范:-如果他们给我你的代表,我会的<代码>:)值得一提的是,结果取决于第二个操作数的大小。示例:“A”^2==2//true
为完整起见,任何非数字文字字符串都是NaN
,然后“A”^1=1
@Alexander。几乎所有非数值(所有其他类型,如对象和数组)都计算为NaN<代码>/fndsjkn/^1==1