Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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:用局部变量替换param?_Javascript_Performance - Fatal编程技术网

JavaScript:用局部变量替换param?

JavaScript:用局部变量替换param?,javascript,performance,Javascript,Performance,如果我有这样一个功能: function xyz(b) { for(var i = 0; i < b.length; i++) { // do something with b items... } } 函数xyz(b) { 对于(变量i=0;i

如果我有这样一个功能:

function xyz(b)
{
    for(var i = 0; i < b.length; i++)
    {
        // do something with b items...
    }
}
函数xyz(b)
{
对于(变量i=0;i
。。。如果我在处理函数项之前将b赋值给函数中的局部变量,不是会对内存更友好吗

function xyz(b)
{
    var c = b;

    for(var i = 0; i < c.length; i++)
    {
        // do something with c items...
    }
}
函数xyz(b)
{
var c=b;
对于(变量i=0;i
在您的示例中,
b
c
都是局部变量,因为它们只存在于函数中。因此,您的代码的性能实际上会有所下降

旁注-如果你想让你的代码更高效,你应该只为整个for循环计算一次
c.length
。在您的示例中,您正在为循环的每个迭代计算它。相反,您可以执行以下操作:

for(变量i=0,cLen=c.length;i


这样,它在开始循环之前只计算一次。

在您的示例中,
b
c
都是局部变量,因为它们只存在于函数中。因此,您的代码的性能实际上会有所下降

旁注-如果你想让你的代码更高效,你应该只为整个for循环计算一次
c.length
。在您的示例中,您正在为循环的每个迭代计算它。相反,您可以执行以下操作:

for(变量i=0,cLen=c.length;i


这样,它在开始循环之前只计算一次。

千万不要在这件事上浪费时间,你总是会在其他地方搞砸,相信我,如果这样做,可能会影响性能0.0001%,这将是无效的。b已经是一个局部变量,就像c一样。它的效率会降低,因为javascript引擎必须解释var c=b并浪费cpu周期。真是浪费。lol.@KMC即使不是,也不会对任何代码的性能产生显著影响!因为您正在创建对
b
的副本或新引用,所以它可能会稍微不那么“内存友好”。另外,除非
b
包含数百万个元素,并且函数
xyz
每秒被调用多次,否则您不必担心该函数的性能。这是事实。对于每个参数,使用另一组局部变量仍然是一种不好的做法,这会使其难以读取。千万不要在这件事上浪费时间,你总是会在其他地方搞砸,相信我,如果这样做,可能会影响性能0.0001%,这将是无效的。b已经是一个局部变量,就像c一样。它的效率会降低,因为javascript引擎必须解释var c=b并浪费cpu周期。真是浪费。lol.@KMC即使不是,也不会对任何代码的性能产生显著影响!因为您正在创建对
b
的副本或新引用,所以它可能会稍微不那么“内存友好”。另外,除非
b
包含数百万个元素,并且函数
xyz
每秒被调用多次,否则您不必担心该函数的性能。这是事实。对于每个参数,使用另一组局部变量仍然是一种不好的做法,这会使读取变得困难。