Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 变量赋值与直接传递给函数_Javascript - Fatal编程技术网

Javascript 变量赋值与直接传递给函数

Javascript 变量赋值与直接传递给函数,javascript,Javascript,以下各项在内存管理方面有哪些优点/缺点 赋值给变量,然后将其传递给函数 直接传递给函数 第一个和第二个代码在传递变量的方式上完全没有区别(除非您以后还需要在代码中使用a) 只有两种情况下,第一种可能优于第二种 您需要在其他地方使用该变量 变量声明太长,需要将其拆分为两行,或者使用复杂的算法,需要为每个步骤指定一个名称以提高可读性 第一个和第二个代码在传递变量的方式上完全没有区别(除非您以后还需要在代码中使用a) 只有两种情况下,第一种可能优于第二种 您需要在其他地方使用该变量 变量声明太长,需要

以下各项在内存管理方面有哪些优点/缺点

  • 赋值给变量,然后将其传递给函数
  • 直接传递给函数

  • 第一个和第二个代码在传递变量的方式上完全没有区别(除非您以后还需要在代码中使用
    a

    只有两种情况下,第一种可能优于第二种

  • 您需要在其他地方使用该变量
  • 变量声明太长,需要将其拆分为两行,或者使用复杂的算法,需要为每个步骤指定一个名称以提高可读性

  • 第一个和第二个代码在传递变量的方式上完全没有区别(除非您以后还需要在代码中使用
    a

    只有两种情况下,第一种可能优于第二种

  • 您需要在其他地方使用该变量
  • 变量声明太长,需要将其拆分为两行,或者使用复杂的算法,需要为每个步骤指定一个名称以提高可读性

  • 这取决于JavaScript引擎的实现。在第一个示例中,一个引擎可能为变量分配内存,而在直接传递的示例中不分配内存,而另一个实现可能足够聪明,可以编译代码,使第一个示例不为变量分配内存,从而使第一个示例的行为与直接传递的示例相同


    我对特定的引擎了解不够,无法告诉你每个引擎具体做什么。您必须查看每个JS引擎(或询问每个引擎的作者)才能得到更确切的答案。

    这取决于JavaScript引擎的实现。在第一个示例中,一个引擎可能为变量分配内存,而在直接传递的示例中不分配内存,而另一个实现可能足够聪明,可以编译代码,使第一个示例不为变量分配内存,从而使第一个示例的行为与直接传递的示例相同


    我对特定的引擎了解不够,无法告诉你每个引擎具体做什么。您必须查看每个JS引擎(或询问每个引擎的作者)才能得到更确切的答案。

    阅读下面的文章:如果变量没有在其他地方使用,为什么要创建变量,或者至少有助于提高可读性?@Cray:无论哪种方式,它都将通过ref传递。读取传递如果变量没有在其他地方使用,为什么要创建变量,或者至少有助于提高可读性?@Cray:无论哪种方式,它都将通过ref传递。
    const a = {foo: 'bar'}; // won't be reused anywhere else, for readability
    myFunc(a);
    
    myFunc({foo: 'bar'});