Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@在JavaScript中做什么?_Javascript - Fatal编程技术网

@在JavaScript中做什么?

@在JavaScript中做什么?,javascript,Javascript,我试着到处搜索,甚至阅读了ECMA规范的一些部分,但我一生都找不到任何东西来解释at符号(@)在JavaScript中的作用。外面有人能帮我理解这个小家伙吗 博士,我在读: 谢谢您的帮助。您在ECMA-262中找不到它。你想要的 §11.1.1属性标识符 AttributeIdentifier用于标识XML属性的名称。它的计算结果为AttributeName类型的值。前面的“@”字符将XML属性与同名的XML元素区分开来。选择此AttributeIdentifier语法是为了与熟悉的XPath语

我试着到处搜索,甚至阅读了ECMA规范的一些部分,但我一生都找不到任何东西来解释at符号(@)在JavaScript中的作用。外面有人能帮我理解这个小家伙吗

博士,我在读:


谢谢您的帮助。

您在ECMA-262中找不到它。你想要的

§11.1.1属性标识符
AttributeIdentifier
用于标识XML属性的名称。它的计算结果为
AttributeName
类型的值。前面的“@”字符将XML属性与同名的XML元素区分开来。选择此
AttributeIdentifier
语法是为了与熟悉的XPath语法保持一致


@在ECMA262中不做任何事情。文档将其用作使用相同语法的不同运算符的占位符。例如,它们描述复合赋值,例如
foo@=bar
,而不是指示所有复合赋值运算符

复合赋值运算符是诸如
x+=1
之类的运算符,但其中有很多运算符,因此,仅在手册中使用@符号象征性地表示所有运算符,而在代码中不使用任何运算符

正如Eli Grey指出的,这是一个存在于通常命名为Nice4x的官方命名为ECMA-357中的功能

值得注意的是,E4X支持目前并不普遍,也不是最适合“开放网络”的标准,正如维基百科文章所述:

E4X由Mozilla的Rhino支持,用于OpenOffice.org和其他几个项目,以及SpiderMonkey,用于Firefox、Thunderbird和其他基于XUL的应用程序。它也由Flash虚拟机中使用的JavaScript引擎Tamarin支持。Nitro(Safari)、V8(GoogleChrome)、Opera、Internet Explorer都不支持它

根据页面上的E4X示例

您可以为变量分配一些XML数据(与我们使用JSON语法分配对象的方式大致相同)


并在警报框中返回“John”。

在什么情况下?衷心感谢您的及时回复。
var sales = <sales vendor="John">
    <item type="peas" price="4" quantity="6"/>
    <item type="carrot" price="3" quantity="10"/>
    <item type="chips" price="5" quantity="3"/>
  </sales>;
alert( sales.@vendor );