【发布时间】:2014-06-19 07:44:39
【问题描述】:
今天我在 MDN 上阅读了一些文章,发现了一些新的东西。在第 11 行的 link 中,我发现了一些类似的东西:
var t = Object( this ), len = t.length >>> 0, k = 0, value;
完整的代码是:
if ( 'function' !== typeof Array.prototype.reduce ) {
Array.prototype.reduce = function( callback /*, initialValue*/ ) {
'use strict';
if ( null === this || 'undefined' === typeof this ) {
throw new TypeError(
'Array.prototype.reduce called on null or undefined' );
}
if ( 'function' !== typeof callback ) {
throw new TypeError( callback + ' is not a function' );
}
var t = Object( this ), len = t.length >>> 0, k = 0, value;
if ( arguments.length >= 2 ) {
value = arguments[1];
} else {
while ( k < len && ! k in t ) k++;
if ( k >= len )
throw new TypeError('Reduce of empty array with no initial value');
value = t[ k++ ];
}
for ( ; k < len ; k++ ) {
if ( k in t ) {
value = callback( value, t[k], k, t );
}
}
return value;
};
}
那么第 11 行中的 >>> 字符是什么意思。
【问题讨论】:
标签: javascript ecmascript-5 ecma262