Ran*_*lue 14 javascript bit-manipulation operators
不知何故,JavaScript理解了按位运算 NaN ^ 1,Infinity ^ 1甚至'a' ^ 1(都评估为1).
NaN ^ 1
Infinity ^ 1
'a' ^ 1
1
在非数字上管理按位运算符的规则是什么?为什么上面的所有例子都要评估1?
Roc*_*mat 11
根据ES5规范,在进行按位运算时,所有操作数都将转换为ToInt32(首先调用ToNumber.如果值为NaN或Infinity,则转换为0).
ToInt32
ToNumber
NaN
Infinity
0
因此:NaN ^ 1=> 0 XOR 1=>1
0 XOR 1
归档时间:
13 年,4 月 前
查看次数:
844 次
最近记录: