gpt4 book ai didi

javascript - 在 JS 中定义一个变量是否比覆盖一个变量使用更多的资源?

转载 作者:行者123 更新时间:2023-11-30 08:31:48 26 4
gpt4 key购买 nike

如果您计划使用一个会多次覆盖变量值的函数,那么在进行覆盖的行中使用 var 是否会降低性能?

例如,

选项 1

var currentTile;
function setCurrentTile(index) {
currentTile = $scope.tiles[index];
}

选项 2

function setCurrentTile(index) {
var currentTile = $scope.tiles[index];
}

从历史上看,我一直使用选项 #1,因为减少代码中 var 的数量似乎很直观。但也许这没有什么区别,使用不那么冗长的方法更为理想。

谁能给个建议?


上下文更新

我们生成一个如下所示的长数组,

function prepGame() {
// GENERATE TILE PATTERN
var tiles = [];
var times = 30;
for ( var i = 0; i < times; i++ ) {
tiles.push(Math.floor(Math.random() * 9));
}
$scope.tiles = tiles;
}

然后遍历它,将值传递给 setCurrentTile(index)。所以 选项 1选项 2 将被调用 30 次。

最佳答案

[爱] 过早的优化是万恶之源。

您应该根据程序的正确性 确定变量的范围,而不是猜测性能或内存利用率。虽然从学术上讲,局部变量的解析速度比全局变量更快,但坦率地说,如果发现一个真实的程序,两者之间的差异足以让人类用户注意到,我会震惊。局部变量和全局变量之间的内存使用应该几乎没有区别。 (通常情况下,这根本没有区别,因为变量就是变量,但是如果对象的实例不止一个,对象的实例变量显然可以重复)

但是,人类用户注意到程序是否产生了错误的结果。一般来说,global variables are bad因为它们使程序状态更难推理。当然,这并不是说它们永远不合适。使用有意义的范围,并忘记性能,直到您可以证明您有一个真实的、用户可注意到的问题

关于javascript - 在 JS 中定义一个变量是否比覆盖一个变量使用更多的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36806022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com