相关疑难解决方法(0)

传递参考与传递值之间有什么区别?

有什么区别

  1. 通过引用传递的参数
  2. 一个由值传递的参数?

你能给我一些例子吗?

language-agnostic pass-by-reference pass-by-value

539
推荐指数
11
解决办法
65万
查看次数

在Javascript中通过引用传递变量

如何在JS中通过引用传递变量?我有3个变量,我想要执行几个操作,所以我想将它们放在for循环中并对每个变量执行操作.

伪代码:

myArray = new Array(var1, var2, var3);
for (var x = 0; x < myArray.length; x++){
    //do stuff to the array
    makePretty(myArray[x]);
}
//now do stuff to the updated vars
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

javascript variables pass-by-reference

269
推荐指数
6
解决办法
35万
查看次数

在JavaScript中读取数组的`length`属性真是那么昂贵吗?

我总是假设在JavaScript中缓存数组的长度是一个好主意(特别是在for循环的条件下),因为计算数组的长度是昂贵的.

for (var i = 0; i < arr.length; i++) { }

// vs

for (var i = 0, arrLength = arr.length; i < arrLength; i++) { }
Run Code Online (Sandbox Code Playgroud)

但是,我想也许该length属性只是在创建和更改数组时更新.因此,阅读它不应该是一个操作太昂贵而不是读取存储在变量中的操作(与其他语言中可能需要在内存中寻找某些内容的其他方法相反,例如strlen()在C中).

我有两个问题.我也对它是如何工作感兴趣,所以请不要用过早的优化棒打我.

假设浏览器中的JavaScript引擎.

  1. length在JavaScript中缓存数组的属性有什么好处吗?是否有更多的参与在对象的属性上读取局部变量?
  2. length属性是否仅在创建和on上更改,shift()并且pop()类型方法不返回新数组,否则只是存储为整数?

javascript arrays

65
推荐指数
4
解决办法
1万
查看次数