什么是Javascript a no op或if语句更快更有效?

时间:2014-04-10 05:51:36

标签: javascript

我用这个:

function (foo){
  foo = foo || function () { };
  foo();
  //do some thing
}

但可以使用更传统的:

function (foo){
  if(typeof foo === 'function'){
    foo(); 
  }
  //do some thing
}

**根据vivek_nk的评论修改。

我认为第一个例子更好阅读但是当它在各种javascript编译器中编译时哪一个更有效?

2 个答案:

答案 0 :(得分:2)

两者都不同。

为什么?

因为第一个检查foo是null还是undefinedfalse0""还是NaN

第二个仅检查undefined

就我个人而言,我觉得你应该使用第一个,因为它会检查各种各样的东西,并分配一行代码并且更具可读性。

答案 1 :(得分:1)

这两种方式都是错误的。在做'某事'之前,我看到你想要调用另一个函数。 因此,检查它是否有功能,而不仅仅是它未定义。

function (foo){
  //we check of type function 
  //because if string is passed ur condition wont work
  if(typeof foo == "function"){
    foo(); 
  }
  //do some thing
}