在JavaScript中使用if条件的最佳做法是什么?

时间:2017-05-25 15:33:36

标签: javascript if-statement



var foo = "bar";
if (foo) {
  console.log(foo);
}

var foo = "bar";
if (!!foo) {
  console.log(foo);
}




我应该使用哪一个?

性能方面两种方式看起来都一样。

https://jsperf.com/ifconditioncheck

4 个答案:

答案 0 :(得分:1)

第一个。第二个不好读,我看不出它的明显用途。

答案 1 :(得分:0)

  

!!不是

在if()内部都是有效的,第二个只是迫使它成为一个bool值,但实际上并不需要。所以请选择if (foo)

但是如果你想分配另一个变量,那就有区别了。见下面的例子:

var foo = "bar";

var myvar = foo;
var myvar2 = !!foo;

console.log("myvar-->" + myvar);
console.log("myvar2-->" + myvar2);

  

了解有关JS truthy-falsey的更多信息:https://j11y.io/javascript/truthy-falsey/

javascript truthy-falsey

答案 2 :(得分:0)

使用!! foo在第二个块中添加条件,需要更多时间。 基本上,如果你运行数千次与boucle相同的话,你会看到第一个具有最佳性能

示例:

var foo = "bar"; 
var n = new Date().getMilliseconds();
for (i=0;i<5;i++){
    if (foo) {console.log(foo);}
}
var n2 = new Date().getMilliseconds();
var elasped_time = n2-n;
console.log(elasped_time);

答案 3 :(得分:0)

如果您只想检查字符串foo中值的可用性,请使用

var foo = "bar";
if (foo) {

}

但这不是检查空字符串的最佳方法。