function doIt(param) {
var localVar = param;
//do lots of stuff with localVar
}
function doIt(param) {
//do lots of stuff with param
}
上述代码之间的效率方面是否存在差异?
答案 0 :(得分:7)
没有区别。参数只是一个局部变量,在调用时使用传递的参数进行初始化。
但是,如果要更改变量的值,通常认为保持参数变量不变是一种好习惯,只是出于可读性和可维护性的原因。
答案 1 :(得分:0)
param
变量已经是一个局部变量,因此这两个代码片段之间的唯一区别是第一个变量创建了param
变量的无用副本。
答案 2 :(得分:0)
是的,如果您的参数变量包含对象的值,则有一个非常明显的区别。如果您的参数变量保存了对象的值,然后在传递的函数中的任何地方修改了参数变量对象,则其值将随处更改,因为在javascript中将对象作为参数传递时,它是通过引用而不是通过值传递的。>
请查看以下代码段以了解我的意思
const object = {};
JSON.stringify(object) === "{}" will pass but {} === "{}" will not