recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Dans l'implémentation de la carte en 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 >>> Quel est le but des opérateurs de bits ici

ringa_leeringa_lee2797 Il y a quelques jours895

répondre à tous(3)je répondrai

  • 过去多啦不再A梦

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

    Compréhension personnelle :

    Parce que bien que cette méthode map soit sur le prototype d'Array, lorsqu'elle est réellement appelée, elle n'est pas nécessairement de type Array, et la longueur ne peut pas être garantie. Après avoir ajouté des opérations sur les bits, la valeur incertaine peut être convertie en Nombre.

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

    répondre
    0
  • 天蓬老师

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

    Convertissez n'importe quelle valeur JS en nombre sans NaN

    répondre
    0
  • 天蓬老师

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

    1. Toutes les valeurs non numériques sont converties en 0

    2. Tous les nombres supérieurs ou égaux à 0 prennent la partie entière

    répondre
    0
  • Annulerrépondre