对于JavaScript中的return array.map,你感到困惑了吗?

6

我有这段代码:

function func1(){
  return 
    array.map(function(el){
      return el.method();
    });
}

function func2(){
  var confused = 
    array.map(function(el){
      return el.method();
    });
  return confused;
}

为什么func1返回undefined,而func2返回我需要的好值呢?

对不起我的英语不好。


自动分号插入。 - Bergi
1个回答

11

在JS引擎内部,第一个示例看起来像这样:

function func1() {
  return;
    array.map(function(el){
      return el.method();
    });
};

这就是为什么会出现 undefined 的原因,不要在 return 后面加换行符,因为在 return 语句后加上换行符会告诉JS解释器需要在该行插入分号。

function func1() {
  return array.map(function(el){
     return el.method();
  });
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接