>>> 无符号右移操作符 this.length>>>0

this.length >>> 0

>>>num

其中,>>>num,是无符号右移操作符,>>>3表示无符号右移三位,无符号则在二进制码前面的空缺位补0。

>>num

对于>>num,是有符号右移操作符。对于正数,右移num位后在前面的空缺位补0,对于负数,右移num位后在前面补1。

对于无符号右移操作符>>>,主要可以用来:
  1. 所有非数值转换成0
  2. 所有大于等于 0 等数取整数部分

(可以让程序提高鲁棒性,待深入理解…)

接下来看一些使用的例子:
'string' >>> 0  //0

null >>> 0  //0

undefined >>> 0  //0

void(0) >>> 0  //0

function a (){};  a >>> 0  //0

[] >>> 0  //0

var a = {}; a >>> 0  //0

123123 >>> 0  //123123

45.2 >>> 0  //45

0 >>> 0  //0

-0 >>> 0  //0

-1 >>> 0  //4294967295

-1212 >>> 0  //4294966084

回到this.length>>>0本身,对于.length的未定义情况,等同于默认取0操作。即对于任何非数字本身或者异常情况,取0。

这么写确实比 var len = this.length || 0; (parseInt?)要好很多,在遇到意外的 this 时,它不会返回 { }、[ ] 等意外的值。(IE 6+ 支持)

参考:
知乎参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值