一边玩,看看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';
除了object
和number
之外,所有其他值都非常接近,但存在差异。据我了解,===
运算符没有进行任何类型强制,因此我认为typeof
必定是罪魁祸首。为什么不同类型的表现会有所不同?
修改 在更多浏览器中测试之后,这似乎是基于WebKit的异常。 Firefox(32)不仅一致,而且远远超过其他浏览器。