我正在学习THREE.js,在指定对象的颜色时,你会在末尾使用带有十六进制值的0x
。这是什么意思?
它们是有效的变量名吗?
它们如何运作?
我认为以数字开头的东西不能成为一个变量?
答案 0 :(得分:4)
是的,您可以对值文字使用十六进制表示。 来自MDN - Numeric Literal:
十六进制
十六进制数字语法使用前导零,后跟小写或大写拉丁字母“X”(0x或0X)。如果0x之后的数字超出范围(0123456789ABCDEF),则抛出以下SyntaxError:“标识符在数字文字后立即启动”。
0xFFFFFFFFFFFFFFFFF // 295147905179352830000 0x123456789ABCDEF // 81985529216486900 0XA // 10
你也可以在这里找到一个语法:http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.3
(值得注意的是,八进制文字不包含在此处,因为它们未在Strict Mode中使用。语法在B.1.1下指定)
答案 1 :(得分:4)
它们是有效的变量名吗?
没有。它们是整数(数字)文字。您可以写0x000000
代替0
,而不是0x10
,而不是16
。{/ p>
答案 2 :(得分:3)
这是从C继承的javascript,甚至更早。
普通数字小数常量如下所示:
x = 42
回到过去(现在甚至在某些情况下),能够以八进制形式指定常量是很有用的。额外的前导0表示:
x = 052 /* 42 */
当十六进制常量开始成为一个有用的东西时,它们被强制作为具有前导0x(之前会出现语法错误):
x = 0x2a /* 42 */
和更新版本的javascript现在支持二进制常量(0b)和更明确的八进制常量(0o):
x = 0b101010 /* 42 */
x = 0o52 /* 42 */
这些表单都不是有效的变量名。
答案 3 :(得分:2)
每种颜色都是一个值(不是变量),所以:
黑色为0,以十六进制形式表示为0x000000。
答案 4 :(得分:1)