【问题标题】:What is the double-dot operator (..) in Javascript?Javascript 中的双点运算符 (..) 是什么?
【发布时间】:2011-05-11 19:04:57
【问题描述】:

我正在用 Spidermonkey 中的 Parser API 做一些工作。 The docs 表明存在二元运算符..。任何人都有任何的想法这是/做什么?我很想知道。我以前从未见过它。如果非要我猜的话,我只能说是 E4X 的问题,但那只是因为我对 E4X 一无所知。

【问题讨论】:

  • 有一个叫“dot-dot”的标签吗?惊人的。 :)
  • @RPM1984:现在是 mattbasta 创建的。 编辑:并没有持续多久。
  • 链接文档中带有 .. 的部分下方的两行表示“注意:.. 运算符是 E4X 特定的。”

标签: javascript operator-keyword


【解决方案1】:

不要与小数点和点混淆:

var val= 1000..toExponential()

【讨论】:

  • 这让我困惑了一段时间——它似乎和(1000).method() 的效果一样,所以我认为它是一个特殊的运算符。我没有想到小数点。不错!
【解决方案2】:

它是一个 E4X 运算符。

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

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

【讨论】:

    【解决方案3】:

    类似:

    255..toString(16);
    

    第一个点实际上是一个小数点,只是让 JavaScript 编译器知道第二个点要调用属性或方法。而255.toString(16) 让 JavaScript 编译器感到困惑(标识符在十进制数字文字之后立即开始)。

    【讨论】:

    • 提示:. 运算符的优先级高于一元 - 或一元 +,后者将其操作数转换为 Numbertypeof(-255..toString())'number'。也就是说,它被解析为typeof(-(255..toString())),实际上是typeof(-(Number(255.toString())))
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2011-01-27
      • 2016-08-28
      • 2012-12-29
      相关资源
      最近更新 更多