2019-02-02
题目
执行以下函数将输入什么?
function greet() {
return
{
message: "hello"
}
}
回答
执行 greet()
将输出 undefined
。因为 JavaScript 的 ASI ( automatic semicolon insertion ),即自动插入分号会使编译器在语法分析时在 return
关键字后放一个分号,所以在不产生错误的情况下,他将输出 undefined
。
加分回答
- 在 JavaScript 中,以下语句是需要使用分号进行结束的。但由于 ASI,通常都使用换行来省略分号
- 空语句
- 以
var
、let
、const
、import
、export
开头的声明语句 - 表达式语句
debugger
、continue
、break
、return
、throw
语句- 以前我是一个分号党,现在能省则省了。你呢?