我遇到了以下情况:
var object = {};
object.name = 'ABC';
console.log(object. name); // this is still valid
Run Code Online (Sandbox Code Playgroud)
注意后面的空格 object.
为什么这个有效?这有ECMA规范吗?
对于不同数据类型的所有继承属性也是如此.
我在节点终端上测试了这个.
谢谢!
为什么这个有效?
因为whitespace 在JavaScript语法中很大程度上(尽管不完全)不相关.您可以安全地在两个标记之间插入除换行符之外的任何空格(并且在大多数情况下,但不是所有情况下,您也可以插入换行符;"最"是由于ASI).你不能在标记中插入空格(因为它将它们分成两个标记),但你可以在标记之间.
正如Federico klez Culloca指出的那样(链接),.是一个运营商,就像+或*.事实上我们通常不会在它周围放置空格,但确实在它们周围放置空格,这简直就是惯例.
这些都是有效的:
console.log(object.name);
console.log(
object.name
);
console.log(
object . name
);
console.log(
object
.
name
);
Run Code Online (Sandbox Code Playgroud)
这有ECMA规范吗?
除了空格和注释之外的输入元素构成ECMAScript的句法语法的终端符号,并且被称为ECMAScript标记.这些标记是ECMAScript语言的保留字,标识符,文字和标点符号.此外,行终止符虽然不被认为是令牌,但也成为输入元素流的一部分,并指导自动分号插入的过程(11.9).简单的空格和单行注释将被丢弃,并且不会出现在语法语法的输入元素流中.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |