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;
}
};
Эй, ребята, я встречаюсь с этим фрагментом кода. Это функция утилиты в JavaScript, которая будет преобразовывать цвета вперед и назад между числами и строками. Есть 2 части, о которых я не очень уверен,Javascript - Преобразование цветов (цифры -> строки) наоборот
Во-первых, Что означает return (color|0);
? Что такое |
? в JavaScript?
Во-вторых, в строке
color = '#' + ('00000' + (color | 0).toString(16)).substr(-6);
почему мне нужно сделать, чтобы убедиться, что шестнадцатеричное число проложенный вне дома? Что мы пытаемся достичь здесь?
Вызов функции с шестнадцатеричным числом, как utils.parseColor(0xFFFF00)
, возвращает значение строки: "#ffff00"
. Передача шестнадцатеричной строки в стиле CSS возвращает одну и ту же строку без изменений. Функция также принимает второй необязательный параметр toNumber
, который, если установлен в true
, возвращает числовое значение цвета . Например, вызывая utils.parseColor("#FFFF00", true)
или utils.parseColor(0xFFFF00, true)
, оба возвращают номер 16776960
.
Thanks, Venn.
этот ответ! Молодец Тихон! –