0x000000在语法上如何作为JavaScript中的值有效?

时间:2015-05-06 05:42:56

标签: javascript syntax three.js

我正在学习THREE.js,在指定对象的颜色时,你会在末尾使用带有十六进制值的0x。这是什么意思?

它们是有效的变量名吗?

它们如何运作?

我认为以数字开头的东西不能成为一个变量?

5 个答案:

答案 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)

  

0x结尾带有十六进制值。这是什么意思?

这意味着它们是hexadecimal numbers.

  

它们是有效的变量名吗?

哪些?如果您说的是0X,那么它们是十六进制的,请指定