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 ragazzi, ho incontrato questo pezzo di codice. È una funzione di utilità in JavaScript che converte i colori avanti e indietro tra numeri e stringhe. Ci sono 2 parti di cui non sono così sicuro,Javascript - Conversione di colori (numeri -> stringhe) vice versa
Primo, Che cosa significa "return (color|0);
"? Che cos'è |
? in JavaScript?
In secondo luogo, nella linea
color = '#' + ('00000' + (color | 0).toString(16)).substr(-6);
perché ne ho bisogno per assicurarsi che il numero esadecimale è imbottito fuori? Cosa stiamo cercando di ottenere qui?
Chiamando la funzione con un numero esadecimale come utils.parseColor(0xFFFF00)
, restituisce il valore stringa : "#ffff00"
. Passando una stringa esadecimale in stile CSS, la stessa stringa non viene modificata. La funzione accetta anche un secondo parametro opzionale toNumber
, che se impostato su true
, restituisce un valore numerico di colore . Ad esempio, chiamando utils.parseColor("#FFFF00", true)
o utils.parseColor(0xFFFF00, true)
, entrambi restituiscono il numero 16776960
.
Grazie, Venn.
questa risposta! Ben fatto Tikhon! –