javascript – 使用对象符号,就像它是一个数组 – 为什么这样评估?

前端之家收集整理的这篇文章主要介绍了javascript – 使用对象符号,就像它是一个数组 – 为什么这样评估?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不明白为什么以下评估为3,而不是仅仅在从 JavaScript REPL或Chrome的开发工具运行时声明语法错误
{1,2,3};
3

据我所见,这应该是一个语法错误,如下所示:

var foo = {1,3};
Uncaught SyntaxError: Unexpected token,

我觉得我不知道有什么古怪的行为?

解决方法

以下是符号的细目:

> {开始代码
> 1数字字面值
>,逗号运算符(评估双方,右侧返回)
> 2数字字面值
>,逗号运算符
> 3数字字面值
>}结束代码

代码块不限于定义是否等等,它们可以在任何地方使用.因此,您的代码只是一个包含链接逗号运算符序列的块,它返回链中的最后一个项,因此3.

在var foo = {1,3}的情况下,{确实是一个“起始对象文字”符号而不是“起始代码块”符号.

相同的符号可以基于上下文具有多个含义.

猜你在找的JavaScript相关文章