在Javascript代码有时候会看到this.length >>> 0 这样的类似代码,那么this.length >>> 0这样的代码有什么用呢?
要弄明白this.length >>> 0的作用,关键是要搞清楚 >>> 这个运算符是干什么的?
>>>在Javascript中代表无符号右移元算符,详细说明见:ECMAScript 位运算符。
在Github问了 lifesinger给出了一个this.length >>> 0 的作用更简易的总结:
- 所有非数值转换成0
- 所有大于等于 0 数取整数部分
update:2012-04-24
移位运算分为左移和右移,其中左移运算都是丢弃最高位,在右端补零。而右移预算则分为逻辑右移和算术右移动,逻辑右移在左端补零,算术右移则在左端扑最高有效位的值。
比如:x = 101101
x逻辑右移2位:001011
x算术右移2位:111011
javascript在这里的无符号右移即逻辑右移动,这个参照了JAVA中关于右移预算的规范。