-1

我想干掉下面的代码。(省略最初的 if 块)

else if (ubar_c_value === 5 ) {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}
else {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

我试过了

else if (ubar_c_value === 5 || undefined) {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

else if (ubar_c_value === 5 || ubar_c_value === undefined) {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

但那些没有用。

有没有办法做我想做的事?我想我可以创建一个函数并简单地包含它两次,但这对我来说还是有点湿。

4

4 回答 4

2

改用这个

else if (ubar_c_value === 5 || typeof ubar_c_value === 'undefined') {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}
于 2013-05-24T15:32:15.367 回答
2

如果它真的像你的问题一样简单,它看起来像这样:

else if (ubar_c_value === 5 ) {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}
else {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

相当于:

else {
        ubar.removeClass("min");
        ubar.css("bottom","0");
        $.cookie('ubar_cookie',"1");
    }

由于默认情况与倒数第二个情况相同,因此您可以使用默认情况。

如果你不想做任何事情,如果它是一个定义的值而不是 5(原始代码不这样做)

那么这很好

else if (ubar_c_value === 5 || typeof ubar_c_value === 'undefined') {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

但是只要您undefined出于某种原因没有重新定义,您的第二个示例就应该适用于这种情况。

于 2013-05-24T15:34:54.720 回答
1
if(typeof ubar_c_value === 'undefined' || ubar_c_value === 5) {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}

typeof 运算符返回一个字符串,指示未计算的操作数的类型。

此外,最好使用 typeof/string 比较然后检查undefined.

不好 (未定义不是保留变量,可以分配给它,破坏您的 IF 语句)

ubar_c_value === undefined

好的

typeof ubar_c_value === 'undefined'
于 2013-05-24T15:33:10.887 回答
1

利用typeof

typeof 允许标识符以前从未被声明过。所以在这方面更安全:

else if (ubar_c_value === 5 || typeof c_value === 'undefined') {
    ubar.removeClass("min");
    ubar.css("bottom","0");
    $.cookie('ubar_cookie',"1");
}
于 2013-05-24T15:31:02.363 回答