4

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

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

        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

4 回答 4

10

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

$image_src = $image_src || $apple_icon || $apple_icon1;
于 2012-11-07T22:14:51.953 回答
4
$image_src = $image_src || $apple_icon;

http://billhiggins.us/blog/2007/02/13/the-javascript-logical-or-assignment-idiom/

于 2012-11-07T22:14:16.990 回答
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);
于 2012-11-07T22:27:53.270 回答
0

老实说,我认为您编写它的方式清楚地表明了您想要做什么。

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

这一切都取决于你想要什么。该||方法可能更有效,但您的方法非常易读。

将它包装在一个函数中会很好。

于 2012-11-07T22:19:32.293 回答