Fir*_*rze 4 javascript optimization performance
在 javascript 函数中使用未使用的参数会减慢执行速度吗?会占用内存吗?我经常编写带有从未实际使用过的参数的函数,例如函数有一个事件作为参数,但该事件从未用于任何事情。
减慢执行速度?
运行时间取决于对输入执行的操作。可能是搜索或排序或任何简单的操作。操作的运行时间决定了它的执行速度。所以当你不传递任何参数时,这意味着没有对该参数执行任何操作,因此运行时间是稳定的。
会占用内存吗?
但就内存分配而言,它们通常会分配一个词法环境。
当函数运行时,在每次函数调用时,
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并填充参数、局部变量和嵌套函数。