我正在使用Spidermonkey中的解析器API进行一些工作。文档显示有一个二元运算符..
。有人知道这是什么/有什么作用吗?我很想知道。我以前从未见过它。如果我被迫猜测,我会说它与E4X有关,但那只是因为我对E4X一无所知。
我正在使用Spidermonkey中的解析器API进行一些工作。文档显示有一个二元运算符..
。有人知道这是什么/有什么作用吗?我很想知道。我以前从未见过它。如果我被迫猜测,我会说它与E4X有关,但那只是因为我对E4X一无所知。
不要将其与小数点和圆点混淆:
var val= 1000..toExponential()
(1000).method()
相同的效果,所以我认为它是一个特殊操作符。小数点没有出现在我的脑海中。很好! - Liam Newmarch这是一个 E4X 运算符。
来自https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide:Processing_XML_with_E4X:
点号(.)运算符访问给定节点的直接子节点,双点号(..)运算符访问所有嵌套层级的子节点:
类似这样:
255..toString(16);
第一个点实际上是一个小数点,只需告诉JavaScript编译器第二个点想要调用属性或方法。而255.toString(16)
使JavaScript编译器混淆了(标识符紧跟在十六进制数字文字后面)。
.
)的优先级高于一元负号(-
)或一元正号(+
),它们将其操作数转换为数字(Number
)。typeof(-255..toString())
的结果是 'number'
。也就是说,它被解析为 typeof(-(255..toString()))
,实际上是 typeof(-(Number(255.toString())))
。 - Colin Fraizer确实是E4X。它做的与单个点操作符相同,选择子元素,但它选择所有后代。(这类似于XPath的/
操作符选择匹配选择器的元素的子元素和//
选择所有匹配选择器的后代。)