0

我有这段代码:

grp = $.cookies.get('grp');
if(grp == null){grp = 0}  

1-如何用三元运算符编写它?2-就性能而言,如果我们有很多的话,三元形式更好还是更简单?

提前致谢

4

2 回答 2

2

做:

grp = $.cookies.get('grp');
grp = (grp == null) ? 0 : grp; 

或者

grp = $.cookies.get('grp') || 0;

我认为性能差异可以忽略不计,在这种情况下重要的是代码的可读性。

补充:例如,如果要检查对象并在不存在时创建它,则:

some_obj = window.some_obj || {};
于 2013-10-06T07:51:43.843 回答
1

为避免类型强制,请始终使用===运算符。null也不鼓励检查。当一个值未定义时,javascript 总是返回undefined.

大多数情况下,创建辅助函数以避免重复代码更容易。

var grp = defaultIfUndefined($.cookies.get('grp'), 'My default value');

function defaultIfUndefined (value, defaultValue) {
    if (typeof value === 'undefined') {
        return defaultValue;
    }
    return value;
}
于 2013-10-06T08:09:00.637 回答