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

mat*_*sta 19 javascript operator-keyword

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

ken*_*bec 35

不要与小数点和点混淆:

var val= 1000..toExponential()
Run Code Online (Sandbox Code Playgroud)

  • 这让我困惑了一段时间 - 它似乎与`(1000).method()`有相同的效果,所以我认为它是一个特殊的操作符.小数没有发生在我身上.太好了! (3认同)

Min*_*ang 17

它是一个E4X运营商.

来自https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide:Processing_XML_with_E4X:

虽然.operator访问给定节点的直接子节点,..运算符访问所有子节点,无论嵌套有多深:


小智 10

就像是:

255..toString(16);
Run Code Online (Sandbox Code Playgroud)

第一个点实际上是一个小数点,只需让JavaScript编译器知道第二个点要调用属性或方法即可。而255.toString(16)使得JavaScript编译器混淆(标识小数点后数字文字立即启动)。


Chu*_*uck 5

确实是E4X。它与单点运算符执行相同的操作,即选择子项,但它选择所有后代。(这类似于 XPath 的/运算符选择与选择器匹配的元素的子元素,并//选择与选择器匹配的所有后代。)