关于js中出现的!! ,>>, >>>的问题

[url]http://my.oschina.net/u/2328177/blog/488205[/url]
[b]1.!![/b]

!!的作用是类型转换 将对应的类型转换为boolean型,第一个!取反,第二个再取一次反

var flag=5;
alert(!!flag);//true

!!会把所有的传入的参数转换成boolean类型,true和false;

当flag的值是null 或者 undefined时候,!!flag返回的就是false;

[b]2.>>,>>>[/b]

最近看代码看到了类似这样的代码 this.length >>> 0,所以特别查了一下相关内容

>>是带符号右移,数字直接返回其值,如果是字符串,null或者undefined返回0;

当字符串里面的值是数字时候,会返回字符串里面的数字的内容,感觉应该是类型转换了一下;
var n = "nisnf";
console.log(n>>0); //0

var n1 = -1;
console.log(n1>>0); //-1

var n2 = "-1";
console.log(n2>>0); //-1

var n3 = 5;
console.log(n3 >>0) //5


[b]3.>>>[/b]
>>>无符号右移,正数正常返回其值,负数会进行转换,其他返回0,这样看来this.length >>>0是为了保证
length里面有值,而且还是正值
var n = "nisnf";
console.log(n>>>0); //0

var n1 = -1;
console.log(n1>>>0); //4294967295

var n2 = "-1";
console.log(n2>>>0); //4294967295

var n3 = null;
console.log(n3 >>>0) //5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值