javascript 的位操作符转换推断
var
a =
"10"
| 0;
alert(a);
alert (
typeof
a);
|
结果为10,number。
这就是说这条语句可以将字符串转化为number。
如果:
var
a =
"sss"
| 0;
alert(a);
|
结果为0
parseInt("sss")的话,会返回NaN。
这个太强大了,就是说不管是啥都能转换为number。。。
比如:
(
function
(){})| 0;
({})| 0;
([])| 0;
如果猜测没错,js是弱类型,所有内容在位运算操作前需要在js引擎实现内部统一转换为int或long。 如果无法转换则默认为赋值为0。最后再经行位运算操作。由此也就产生了这个"变态"现象。 |