在JavaScript中使用Double Equals会导致性能问题吗?

时间:2015-12-16 19:34:42

标签: javascript performance if-statement boolean

在JavaScript中,每个“严格模式”,在比较if语句中的值时应使用===。但是,在处理truthy / falsy值时,这会导致非常长的if语句:

if (a !== null && a !== undefined && a !== '' && a !== 0) {}

为了解决这个问题,我已经开始使用!!

if(!!a === true) {}

将值转换为布尔值。但是,我担心会对性能产生影响。根据我的JSPerf(http://jsperf.com/double-exclamation-vs-falsy/4),这种方法比if语句的长形式慢30%。

我离开基地吗?有没有人注意到性能受到了影响?

1 个答案:

答案 0 :(得分:0)

使用if(!!a) {确实会对性能产生重大影响,因为当您执行if(a)时,您正在执行JS内部执行的相同布尔转换。像if(a === true)if(a !== null && a !== undefined)

这样进行显式类型检查更为高效