在JavaScript中使用“严格模式”时,在比较if语句中的值时应使用===
。然而,随着truthy/falsy值打交道时,这可能会导致很长的if语句:在JavaScript中使用Double Equals会导致性能问题吗?
if (a !== null && a !== undefined && a !== '' && a !== 0) {}
要解决这个问题,我已经使用!!
if(!!a === true) {}
到开始将该值作为布尔值进行转换。但是,我担心会对性能产生影响。根据我的JSPerf(http://jsperf.com/double-exclamation-vs-falsy/4),这种方法比if语句的长格式慢30%。
我的基地在这里吗?有没有人注意到性能受到影响?
很少需要对“true”或“false”进行明确比较。只是“如果(a)'会做到这一点。 – Pointy
如果使用'!!',那么就不需要'=== true'或'=== false' –
@PatrickEvans,如果你不做比较,也不需要'!!'。 – Pointy