Javascript的“ document.querySelectorstyle.backgroundColor”将HEX转换为RGB是否有原因?

问题描述

这是我的第一个问题,请保持温柔。我刚刚在Safari,Chrome和Firefox的控制台中注意到,以下脚本中的颜色值始终返回RGB值而不是十六进制值。并不是说这会阻止代码正常工作,否则我只是想知道控制台为什么不返回发送的十六进制值? Javascript是否总是将颜色值转换为RGB?它是超越其他范式的头等公民吗?

function randomHEX() {
    var HEXvalues = [0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"];
    var newHEX = "#";

    for (i = 0; i < 6; i++) {
        var nextIndex = Math.floor(Math.random() * HEXvalues.length); // grab a random value from the array
        newHEX += HEXvalues[nextIndex]; // increment values to newHEX
    }

    document.querySelector("#hexName").textContent = newHEX; // use newHEX to fill text of ID hexName
    document.querySelector(".container").style.backgroundColor = newHEX; // use newHEX to change background color of Box
}

Safari console window

任何信息将不胜感激。

非常感谢。


PS

谢谢那些回答。我的问题是为什么 RGB? 为什么认为其收到的十六进制数字? 为什么 Javascript使用.style.backgroundColor将十六进制值转换为RGB值吗?

再次感谢。

解决方法

默认情况下是,它显示为RGB。要将其转换为十六进制,已经在这里link

进行了回答。 ,

这不是您的问题。您的函数可以正确设置十六进制值。您可以通过在函数末尾添加console.log(newHEX)进行检查。

element.style.color = HEX_string,它将转换为RGB值。

如果您需要将其转换回-选中this question