【问题标题】:Why does {a:1} evaluate to 1 in the console [duplicate]为什么 {a:1} 在控制台中评估为 1 [重复]
【发布时间】:2013-06-10 20:29:05
【问题描述】:

我为什么 Chrome 和 Firefox 中的控制台会评估当前为1

> {a:1}
1

我猜它会被评估为一个对象,就像你将它分配给一个变量一样:

> var a = {a:1}
undefined
> a
Object {a: 1}

加上引号会引发语法错误:

> {"a":1}
SyntaxError: Unexpected token :

【问题讨论】:

标签: javascript console syntax-error


【解决方案1】:

试试({a:1})

只是执行{a:1} 并不是你想的那样。它不是一个对象字面量,它必须是一个表达式(例如,在赋值的右边)。

相反,您拥有的是 blocklabel,然后是 1。

{
    a:
    1
}

块返回其评估结果,标签返回评估标签后面语句的结果,因此返回1

【讨论】:

  • 标签在那里做什么?它将如何使用完整或不使用?
  • @NULL,根据规范,标签只能与 breakcontinue 语句一起使用。然而,即使您无法在此特定上下文中使用标签,也没有任何语法关于定义一个无效。这是一个特点。
猜你喜欢
  • 2017-12-21
  • 1970-01-01
  • 2019-03-25
  • 2012-02-20
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
相关资源
最近更新 更多