javascript-更好地检查未定义的属性或设置为null?

用代码更容易用语言解释,因此考虑以下情况:

// one

var myClass = function(a, b)
{
    if(a) this.a = a;
    if(b) this.b = b;
}

// two

var myClass = function(a, b)
{
    this.a = a || null;
    this.b = b || null;
}

并说您有这种不断被调用的方法(许多次/秒)

myClass.prototype.doSomething = function()
{
    if(this.a) // do something
    if(this.b) // so something else
};

在第一种情况下,您将检查未定义的属性,而在第二种情况下将检查现有属性,但其值为null.

哪种情况在JavaScript中效果更好?

解决方法:

我不确定是否以最佳方式设置测试,但是此站点非常适合进行基准测试:

http://jsperf.com/or-pipe-versus-if

我使用IF语句而不是使用OR运算符设置默认值的结果显示效果要好6%

上一篇:MySQL IN子句使用子选择与值列表


下一篇:多个线程以将xml文件加载到内存中