Javascript - das Konvertieren von Farben (zahlen -> Saiten) Umgekehrt

utils.parseColor = function (color, toNumber) {
  if (toNumber === true) {
    if (typeof color === 'number') {
      return (color | 0); //chop off decimal
    }
    if (typeof color === 'string' && color[0] === '#') {
      color = color.slice(1);
    }
    return window.parseInt(color, 16);
  } else {
    if (typeof color === 'number') {
      //make sure our hexadecimal number is padded out
      color = '#' + ('00000' + (color | 0).toString(16)).substr(-6);
    }

    return color;
  }
};

Hey Leute, ich begegne diesem Stück code. Es wird eine utility-Funktion, die in JavaScript konvertieren Farben hin und her zwischen zahlen und Zeichenketten. Es sind 2 Teile, ich bin nicht so sicher,

Erste,
Was bedeutet return (color|0); bedeuten? Was ist |? in JavaScript?

Zweitens, in der Zeile

color = '#' + ('00000' + (color | 0).toString(16)).substr(-6); 

warum brauche ich, um sicherzustellen, dass die hexadezimale Zahl ist gepolstert aus? Was versuchen wir hier zu erreichen?


Aufruf der Funktion mit einer hexadezimalen Zahl, wie utils.parseColor(0xFFFF00), gibt den string zurück
Wert: "#ffff00". Die übergabe eines CSS-style-hexadezimal-string aus gibt die gleiche Zeichenfolge unverändert. Die
die Funktion akzeptiert auch einen zweiten, optionalen, parameter toNumber, die bei der Einstellung true, gibt einen numerischen
Farbe Wert. Zum Beispiel, ruft utils.parseColor("#FFFF00", true) oder
utils.parseColor(0xFFFF00, true), beide geben die Anzahl 16776960.

Dank,
Venn.

InformationsquelleAutor Vennsoh | 2012-03-14
Schreibe einen Kommentar