码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-08-05 16:34:36      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

1.!!

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


var flag=5;
alert(!!flag);//true
!!会把所有的传入的参数转换成boolean类型,true和false;


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

2.>>,>>>

最近看代码看到了类似这样的代码 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
>>>无符号右移,正数正常返回其值,负数会进行转换,其他返回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




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

标签:

原文地址:http://my.oschina.net/u/2328177/blog/488205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!