我有一个基本的 for 循环,用于确定名为 animationDirection
的变量的值 'left'
或 'right'
。
如何在循环之前初始化此变量,以便可以在其中定义它?
我尝试使用 varanimationDirection = undefined;
将其初始化为 undefined
,但 javascript linter 不赞成这样做。
我已经确定了下面在循环逻辑中定义animationDirection的代码,但这似乎是一个坏主意,因为我使用var
初始化变量两次。
关于如何更好地定义变量有什么想法吗?
for (var i = 0; i < $selected.length; i++) {
if (i < ($selected.length / 2)) {
var animationDirection = 'left';
} else {
animationDirection = 'right';
}
$($selected[i])
.css(animationDirection, animationOffset)
.velocity(animation, animationConfig);
}
最佳答案
像这样:
var animationDirection,
i;
for (i = 0; i < $selected.length; i += 1) {
if (i < ($selected.length / 2)) {
animationDirection = 'left';
} else {
animationDirection = 'right';
}
$($selected[i])
.css(animationDirection, animationOffset)
.velocity(animation, animationConfig);
}
Douglas Crockford 的 JSLint 要求在函数顶部声明变量(不确定您使用的是什么 lint)。
这里有一个更简洁的方法,它避免了 for
循环语义(假设这里 $selected
是一个 jQuery 对象),并提出了在哪里声明变量的问题简单得多:
$selected.each(function(i, e) {
var animationDirection = (i < ($selected.length / 2)) ? "left" : "right";
$(e).css(animationDirection, animationOffset)
.velocity(animation, animationConfig);
});
关于javascript - 如何在变量的值确定之前对其进行初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23572552/