☁️第4期第1题:following function return?
Opened this issue · 0 comments
LinDaiDai commented
following function return?
以下代码输出什么?
function getName () {
return
{
name: 'LinDaiDai'
}
}
console.log(getName())
这道题其实涉及到了JavaScript
中的一个名为ASI
的机制,全名Automatic Semicolon Insertion
,好吧,不要整的那么高大上了,其实就是自动插入分号的机制。
按照ECMAScript
标准,一些 特定语句(statement) 必须以分号结尾。分号代表这段语句的终止。但是有时候为了方便,这些分号是有可以省略的。这种情况下解释器会自己判断语句该在哪里终止。这种行为被叫做“自动插入分号”
,简称ASI (Automatic Semicolon Insertion)
。实际上分号并没有真的被插入,这只是个便于解释的形象说法。
也就是说这道题在执行的时候,会在return
关键字后面自动插入一个分号,所以这道题就相当于是这样:
function getName () {
return;
{
name: 'LinDaiDai'
}
}
console.log(getName())
因此最终的结果也就是undefined
。