Javascript函数不返回预期的输出

时间:2015-01-12 11:24:12

标签: javascript

当我执行我创建的函数时,我对为什么得到[Function]的输出感到有些困惑。

var nameString = function (name) {

return "Hi, I am" + " " + name;     
};


nameString("Yasser");
console.log(nameString);

我知道我在console.log中使用该函数来打印出它的值。它不应该打印出我的名字“yasser”而不是说功能吗?

4 个答案:

答案 0 :(得分:3)

执行console.log(nameString)时,它会打印.toString()上调用的nameString.toString()输出,如[Function]。输出结果为nameString

您需要使用字符串参数执行函数console.log(nameString("Yasser")) ,然后按如下所示记录返回的输出

{{1}}

答案 1 :(得分:1)

因为你在函数上运行console.log,所以你没有调用它,所以你不会得到返回值。我看到你已经在console.log上面调用了这个函数,但你还没有在任何地方分配值

console.log(nameString("Yasser"));

var s = nameString("Yasser");
console.log(s);

答案 2 :(得分:1)

您正在从函数返回一个字符串,但不会将其分配给任何内容。

当您console.log时,您没有使用上次通话的结果;你只是在Javascript中打印一个函数指针。

要解决此问题,您应该将结果分配给变量:

var name = nameString("Yasser");
console.log(name);

或者简单地内联函数的结果:

console.log(nameString("Yasser"));

答案 3 :(得分:1)

您在共享的Javascript代码中理解非常基本的事情,有两件事需要考虑:

  1. 功能参考----> nameString 只是对该函数的引用。没什么了!

    检查一下: http://jsfiddle.net/d73heoL2/1/

  2. 
    
    var nameString = function (name) {
    
    return "Hi, I am" + " " + name;     
    };
    alert(typeof nameString);
    
    
    

    1. 函数调用---->要执行某个功能,您需要调用它。例如:
    2.   

      nameString();

      话虽如此,你想要的就是这样:

      
      
      var nameString = function (name) {
      
      return "Hi, I am" + " " + name;     
      };
      
      alert(nameString('WooCommerce'));