gpt4 book ai didi

javascript - Javascript 语法中的 : 和::和::有什么区别

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:43 24 4
gpt4 key购买 nike

ECMAScript grammar specification对于 Javascript,有像这样用双冒号定义的 block :

Literal ::
NullLiteral
BooleanLiteral
NumericLiteral
StringLiteral
RegularExpressionLiteral

和像这样用单个冒号定义的 block :

PrimaryExpression :
this
Identifier
Literal
ArrayLiteral
ObjectLiteral
( Expression )

并且,即使是带有三个冒号的 block :

uriCharacter :::
uriReserved
uriUnescaped
uriEscaped

单冒号、双冒号和三冒号有什么区别?

最佳答案

The JSON lexical grammar is used to translate character sequences into tokens and is similar to parts of the ECMAScript lexical grammar. The JSON syntactic grammar describes how sequences of tokens from the JSON lexical grammar can form syntactically correct JSON object descriptions.

标记的词法规则 ("::") 表示“语言的各个部分看起来像什么”。它定义了诸如“5.5 是一个数字”之类的规则。

表达式的句法规则 (":") 表示“各部分如何相互作用”。它定义了诸如“5.5 abc 没有意义”之类的规则。

三重冒号 (":::") 似乎专门保留用于定义将字符串转换为数字的规则。字符串 "0x1235 "(带空格)是一个有效数字。三冒号规则对此进行了定义。

三重冒号 (":::") 似乎也用于 uri 字符串语法。最常用的是这样的:"f%20o%20o" 解码为 "f o o"。这些规则定义了字符串“数字”部分的结构。

关于javascript - Javascript 语法中的 : 和::和::有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com