这个javascript在语法上是正确的还是有更好的方法?

时间:2012-11-07 22:12:39

标签: javascript jquery

基本上如果没有设置变量,则将其设置为另一个值。

必须有更好的方法,这看起来很混乱。

        if ($image_src === undefined) {
                $image_src = $apple_icon;
            }

            if ($image_src === undefined) {
                $image_src = $apple_icon2;
            }

            if ($image_src === undefined) {
                $image_src = $item_prop_image;
            }

            if ($image_src === undefined) {
                $image_src = $image_first;
            }

4 个答案:

答案 0 :(得分:10)

在JavaScript中,您可以使用或||运算符来压缩未定义的内容。所以这是有效的:

$image_src = $image_src || $apple_icon || $apple_icon1;

答案 1 :(得分:4)

答案 2 :(得分:1)

扩展我的评论 - 如果您确实有可能没有声明其中一个变量的情况,您可以执行以下操作 - 更难阅读,但更安全:

$image_src = getWhateverTheInitialValueIsSupposedToBe();

$image_src = $image_src || (
    (typeof($apple_icon) !== "undefined" && $apple_icon) ? $apple_icon :
    (typeof($apple_icon2) !== "undefined" && $apple_icon2) ? $apple_icon2 :
    (typeof($item_prop_image) !== "undefined" && $item_prop_image) ? $item_prop_image :
    (typeof($image_first) !== "undefined" && $image_first) ? $image_first :
    $image_src);

答案 3 :(得分:0)

老实说,我认为你写的方式清楚地表明你想做什么。

你可以通过其他答案中显示的方式使其更紧凑,但我发现你写它的方式乍一看比其他IMO更容易理解。

这完全取决于你想要什么。 ||方法可能更有效,但你的方法很可读。

在函数中包装它会没问题。