javascript - 如何在变量的值确定之前对其进行初始化?

标签 javascript

我有一个基本的 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/

相关文章:

javascript - 如何返回数组中所有值的总和?

javascript - AngularJS 形式。 JSON 中的可选属性

javascript - 使用 JSX 的 map 时如何避免卸载子组件?

javascript - 为什么我的功能没有产生预期的结果?

javascript - 使用 jQuery 隐藏除给定 data-* 属性之外的所有元素

javascript - 按容器比例调整视频大小

javascript - 嵌套线图的 d3js 复制品

javascript - 多维数组填充

javascript - 如何使调查问卷上的提交按钮起作用

javascript - 如何从不同类中的函数更改一个类的状态