为什么JavaScript中的某些类型比其他类型更快?

时间:2014-10-10 20:49:03

标签: javascript performance

一边玩,看看if (val) {}if (typeof val === '') {}是否更快(差异很大negligible,顺便说一句),我注意到typeof运算符似乎已广泛根据您所比较的内容改变表现:

typeof obj === 'object'; // slowest by ~50%
typeof func === 'function';
typeof und === 'undefined'; // second-fastest
typeof bool === 'boolean';
typeof str === 'string';
typeof num === 'number'; // fastest
typeof nu === 'object';

除了objectnumber之外,所有其他值都非常接近,但存在差异。据我了解,===运算符没有进行任何类型强制,因此我认为typeof必定是罪魁祸首。为什么不同类型的表现会有所不同?

jsPerf

修改 在更多浏览器中测试之后,这似乎是基于WebKit的异常。 Firefox(32)不仅一致,而且远远超过其他浏览器。

0 个答案:

没有答案