Javascript中的双点运算符(..)是什么?

32

我正在使用Spidermonkey中的解析器API进行一些工作。文档显示有一个二元运算符..。有人知道这是什么/有什么作用吗?我很想知道。我以前从未见过它。如果我被迫猜测,我会说它与E4X有关,但那只是因为我对E4X一无所知。


2
有一个叫做“点-点”的标签?太棒了。 :) - RPM1984
@RPM1984:现在有了,是mattbasta创造的。编辑:但它没持续多久。 - eldarerathis
1
注意:.. 运算符是 E4X 特有的。 - John Boker
4个回答

49

不要将其与小数点和圆点混淆:

var val= 1000..toExponential()

5
有一段时间我被这个搞糊涂了 - 它似乎具有与(1000).method()相同的效果,所以我认为它是一个特殊操作符。小数点没有出现在我的脑海中。很好! - Liam Newmarch

18

由于链接已失效:https://web.archive.org/web/20210514140120/https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X - Shayan

16

类似这样:

255..toString(16);

第一个点实际上是一个小数点,只需告诉JavaScript编译器第二个点想要调用属性或方法。而255.toString(16)使JavaScript编译器混淆了(标识符紧跟在十六进制数字文字后面)。


1
提示:点运算符(.)的优先级高于一元负号(-)或一元正号(+),它们将其操作数转换为数字(Number)。typeof(-255..toString()) 的结果是 'number'。也就是说,它被解析为 typeof(-(255..toString())),实际上是 typeof(-(Number(255.toString()))) - Colin Fraizer

5

确实是E4X。它做的与单个点操作符相同,选择子元素,但它选择所有后代。(这类似于XPath的/操作符选择匹配选择器的元素的子元素和//选择所有匹配选择器的后代。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接