NodeJS {1:'a'}[1]此语法在代码中有效,但在浏览器的开发人员工具中无效?[重复]

ecfsfe2w  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(158)

此问题在此处已有答案

Why is {} + {} no longer NaN in Chrome console?(3个答案)
10天前关门了。
我接了一个新项目,有一行代码看起来像这样:

typeName() {
      return {
        1: 'leads',
        2: 'cunstomer',
        3: 'business'
      }[this.optionValue]
    },

字符串
它工作得很好。我从来没有见过。然后我尝试在开发工具,但它不工作!有人能告诉我为什么吗?
x1c 0d1x的数据

{1:'a'}[1]


开发人员工具将报告错误:Uncaught SyntaxError:Unexpected token ':'

unhi4e5o

unhi4e5o1#

JavaScript在关键字return后需要一个表达式。开发工具控制台或多或少需要你放在文件中的东西:一个语句

编辑

正如Jonas的注解中所述,语句本身就是表达式。并且,由于语句和表达式都使用了特定的语法,因此无论何时发生冲突,语句优先。
例如,语句:

if (5 > 3) {
  console.log(33);
}

字符串
作为控制台输入有效,但作为返回值无效:

function myFunc() {
  
  // return expects an expression
  return if (5 > 3) {
    console.log(33)
  }
}


你实际上是在代码块(一个语句)中放入一个数字,后面加上一个冒号,然后尝试索引这个代码块。

// This makes no sense in the global scope

{
  1:'a'
}[1]

相关问题