function a(){
return{
bb:"a"
}
}
and
function a(){
return
{
bb:"a"
}
}
两个代码之间是否有任何区别,如果是,请解释。
答案 0 :(得分:11)
差异很大。第一个返回一个对象。第二个 - 由于Automatic Semicolon Insertion而未定义。 return
将成为return;
function a(){
return{
bb:"a"
}
}
function a1(){
return
{
bb:"a"
}
}
console.log(a(), a1())

答案 1 :(得分:3)
出于某种原因,Javascript bods决定一行中的单个return
将受到一种称为自动分号插入的“自动更正”机制的约束。
所以你的第二个片段变成了
function a1(){
return;
{
bb:"a"
}
}
不再符合语法效果!
参考:https://github.com/cbeust/klaxon/blob/master/src/main/kotlin/com/beust/klaxon/DSL.kt
(我现在正在学习Javascript,并且已经为此而堕落了。)