cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Dalam pelaksanaan peta dalam js, var len = O.length >>> 0;

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_leeringa_lee2779 hari yang lalu882

membalas semua(3)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:59:55

    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

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:59:55

    Tukar sebarang nilai JS kepada nombor tanpa NaN

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-18 10:59:55

    1. Semua nilai bukan angka ditukar kepada 0

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

    balas
    0
  • Batalbalas