【问题标题】:Why Undefined is returned after function call为什么函数调用后返回未定义
【发布时间】:2016-02-26 14:13:52
【问题描述】:

我只是在玩 Javascript 中的提升概念。我在玩的时候写了以下代码,最后我可以看到一个意外的输出“未定义”。这是从哪里来的?

  b();
    console.log(a);

    function b(){
        a=10;
        console.log(a*10);
    }

    var a=6;
    console.log(b());

输出:

100

10

100

未定义

【问题讨论】:

  • 因为函数没有返回任何东西。
  • 函数b()没有return语句,所以返回值为undefined
  • 我建议使用浏览器内置的调试器逐行执行代码。这是准确查看该代码(或者实际上是几乎任何代码)中发生了什么的最佳方式。

标签: javascript undefined hoisting


【解决方案1】:

undefined 是没有return 语句的函数返回的默认值(不使用new 运算符调用)。

【讨论】:

    【解决方案2】:

    您还没有为函数设置返回值,所以它返回默认的undefined。如果您希望函数返回您计算的值,我建议这样做:

    function b(){
        a=10;
        calculatedValue = a*10;
        console.log(calculatedValue);
        return calculatedValue;
    }
    

    将 a 作为函数的参数传递也可能很有用:

    function b(a){
        calculatedValue = a*10;
        console.log(calculatedValue);
        return calculatedValue;
    }
    
    var a=6;
    console.log(b(a));
    

    【讨论】:

      猜你喜欢
      • 2020-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多