函数中未使用的参数会减慢 JavaScript 的执行速度吗?

Fir*_*rze 4 javascript optimization performance

在 javascript 函数中使用未使用的参数会减慢执行速度吗?会占用内存吗?我经常编写带有从未实际使用过的参数的函数,例如函数有一个事件作为参数,但该事件从未用于任何事情。

Bat*_*eam 5

减慢执行速度?

运行时间取决于对输入执行的操作。可能是搜索或排序或任何简单的操作。操作的运行时间决定了它的执行速度。所以当你不传递任何参数时,这意味着没有对该参数执行任何操作,因此运行时间是稳定的。

会占用内存吗?

但就内存分配而言,它们通常会分配一个词法环境

当函数运行时,在每次函数调用时,LexicalEnvironment都会创建新函数 并填充参数、变量和嵌套函数声明。

所以对于下面的函数:

function sayHi(name) {
/* LexicalEnvironment = { name: passedvalue, 
                        phrase: undefined }*/  // created at this point.
  var phrase = "Hi, " + name
  alert(phrase)
}
Run Code Online (Sandbox Code Playgroud)

所以当你调用它时sayHi(),词法环境看起来像:

LexicalEnvironment = { name: undefined, phrase: undefined};
Run Code Online (Sandbox Code Playgroud)

因此,当解释器解释函数时,每个参数和函数变量都被分配了内存。

当解释器准备开始执行函数代码时,在运行第一行之前,会创建一个空的LexicalEnvironment填充参数、局部变量和嵌套函数。