有什么区别
你能给我一些例子吗?
如何在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中缓存数组的长度是一个好主意(特别是在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引擎.
length在JavaScript中缓存数组的属性有什么好处吗?是否有更多的参与在对象的属性上读取局部变量?length属性是否仅在创建和on上更改,shift()并且pop()类型方法不返回新数组,否则只是存储为整数?