Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中使用return函数的原因是什么?_Javascript - Fatal编程技术网

在JavaScript中使用return函数的原因是什么?

在JavaScript中使用return函数的原因是什么?,javascript,Javascript,当我研究JavaScript函数的相关概念时,我发现了一个我无法解决的问题。我使用以下代码,即一个带有返回作为函数,另一个作为简单函数,如下所示 function plus(a, b) { return( console.log(a+b), console.log(this), console.log(arguments) ) } plus(4,5); 及 但当我同时运行这两个命令时,我无法弄清楚,因为这两个命令在控制台中的结果是相同的。所


当我研究JavaScript函数的相关概念时,我发现了一个我无法解决的问题。我使用以下代码,即一个带有返回作为函数,另一个作为简单函数,如下所示

function plus(a, b) {
   return(
       console.log(a+b),
       console.log(this),
       console.log(arguments)
   )
}
plus(4,5);

但当我同时运行这两个命令时,我无法弄清楚,因为这两个命令在控制台中的结果是相同的。所以我只想知道什么时候应该使用return作为函数。?它的主要目的是什么?我在这里看到了答案,但这些答案与返回整个函数或对象有关,但没有找到作为函数返回的具体答案。所以请帮我

return(
       console.log(a+b),
       console.log(this),
       console.log(arguments)
   )
声明是指:

返回
(…)
表达式表示的参数。此处括号不是
返回
关键字语法的一部分,而是与运算符
一起使用的独立运算符

计算后的
(1,2,3)
表达式返回最后一个表达式的值

在您的例子中,它是
console.log(arguments)
,返回
undefined

参考资料:

声明是指:

返回
(…)
表达式表示的参数。此处括号不是
返回
关键字语法的一部分,而是与运算符
一起使用的独立运算符

计算后的
(1,2,3)
表达式返回最后一个表达式的值

在您的例子中,它是
console.log(arguments)
,返回
undefined

参考资料:

    • function plus(a, b) {
         return(
             console.log(a+b),
             console.log(this),
             console.log(arguments)
         )
      }
      
      相当于:

      function plus(a, b) {
         var r = (
             console.log(a+b),
             console.log(this),
             console.log(arguments)
         );
         return r; 
      }
      
      或者简单地说(编辑,但是错误的,请参见zerkms评论):

      其中,
      是一个表达式-计算由逗号分隔的所有部分以及最后一个表达式的结果。

      相当于:

      function plus(a, b) {
         var r = (
             console.log(a+b),
             console.log(this),
             console.log(arguments)
         );
         return r; 
      }
      
      或者简单地说(编辑,但是错误的,请参见zerkms评论):



      其中,
      是一个表达式-计算由逗号分隔的所有部分以及最后一个表达式的结果。

      这里不返回函数,在这两种情况下都返回
      未定义的
      。@zerkms这是
      返回
      ,作为一个函数“不是”返回一个函数,OP的意思必须是使用
      ()
      随附的语句列表。@MichaelBerkowski好的。还有一列“表达式”
      console.log(a+b,这个,参数)
      ,no
      return
      @MichaelBerkowski是的,这正是我的意思。如果你在这里不返回函数,那么在这两种情况下都返回
      未定义的
      。@zerkms that
      return
      “作为函数”而不是“返回函数”,OP的意思必须是调用
      返回
      ,并附上
      ()
      语句列表。@MichaelBerkowski好的。还有一个“表达式”列表
      console.log(a+b,this,arguments)
      ,否
      return
      @MichaelBerkowski是的,这正是我的意思。在类似数组的对象中,
      arguments
      不是
      arguments
      数组对象吗?@PHPglue不确定你的意思你说它是
      未定义的
      当它是
      a
      b
      时。@zerkms how console.log(arguments)未定义当它像PHPglue提到的那样给出数组时?@PHPglue:
      控制台。log
      调用返回
      未定义的
      参数
      不是
      参数
      类似数组的对象吗?@PHPglue不确定你说它是
      未定义的
      当它是
      a
      b
      类似数组时对象。@zerkms-console.log(参数)是如何定义的,当它给出PHPglue提到的数组时?@PHPglue:
      console.log
      调用返回
      undefined
      ”或者简单地说:“---除非它在语法上不正确。@zerkms谢谢你,现在这样做是有意义的me@c-“微笑,非常感谢你的帮助”或者简单地说:---除非它在语法上不正确。@zerkms谢谢你,现在这样做是有意义的me@c-微笑谢谢你的帮助
      function plus(a, b) {
         var r = 
             console.log(a+b),
             console.log(this),
             console.log(arguments);
         return r; 
      }