javascript - Dalam pelaksanaan peta dalam js, var len = O.length >>> 0;
ringa_lee
ringa_lee 2017-05-18 10:57:55
0
3
880
if (!Array.prototype.map) {
  Array.prototype.map = function(callback, thisArg) {
    var T, A, k;
    if (this == null) {
      throw new TypeError(" this is null or not defined");
    }
    var O = Object(this);
    var len = O.length >>> 0;
    // 3.如果callback不是函数,则抛出TypeError异常.
    if (Object.prototype.toString.call(callback) != "[object Function]") {
      throw new TypeError(callback + " is not a function");
    }
    if (thisArg) {
      T = thisArg;
    }
    A = new Array(len);
    k = 0;
    while(k < len) {
      var kValue, mappedValue;
      if (k in O) {
        kValue = O[ k ];
        mappedValue = callback.call(T, kValue, k, O);
        A[ k ] = mappedValue;
      }
      k++;
    }
    return A;
  };      
}

var len = O.length >>> Apakah tujuan operator bit di sini

ringa_lee
ringa_lee

ringa_lee

membalas semua(3)
过去多啦不再A梦

Pemahaman peribadi:

Oleh kerana walaupun kaedah peta ini adalah pada prototaip Array, apabila ia sebenarnya dipanggil, ini tidak semestinya jenis Array, dan panjangnya tidak boleh dijamin Selepas menambah operasi bit, nilai yang tidak pasti boleh ditukar kepada Nombor.

1 >>> 0 // 1
undefined >>> 0 // 0
null >>> 0 // 0
'string' >>> 0 // 0
Peter_Zhu

Tukar sebarang nilai JS kepada nombor tanpa NaN

Peter_Zhu
  1. Semua nilai bukan angka ditukar kepada 0

  2. Semua nombor yang lebih besar daripada atau sama dengan 0 mengambil bahagian integer

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan