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;
}
};
Hola chicos, me encuentro con este fragmento de código. Es una función de utilidad en JavaScript que convertirá colores hacia adelante y hacia atrás entre números y cadenas. Hay 2 partes de las que no estoy tan seguro,Javascript - Conversión de colores (números -> cadenas) viceversa
Primero, ¿Qué significa return (color|0);
? ¿Cuál es |
? en JavaScript?
En segundo lugar, en la línea de
color = '#' + ('00000' + (color | 0).toString(16)).substr(-6);
¿Por qué necesito para asegurarse de que el número hexadecimal se rellena a cabo? ¿Qué estamos tratando de lograr aquí?
Llamar a la función con un número hexadecimal como utils.parseColor(0xFFFF00)
, devuelve el valor de cadena : "#ffff00"
. Al pasar una cadena hexadecimal de estilo CSS, se devuelve la misma cadena sin modificar. La función también acepta un segundo parámetro opcional toNumber
, que si se establece en true
, devuelve un valor numérico de color . Por ejemplo, llamando al utils.parseColor("#FFFF00", true)
o utils.parseColor(0xFFFF00, true)
, ambos devuelven el número 16776960
.
Gracias, Venn.
¡esta respuesta! ¡Bien hecho Tikhon! –