我想知道以下任何技术是否会增加任何性能:
!!variable - 我在 jquery 及其插件中看到了这个 - 转换为 bool
null == 变量 - 如果您错过第二个等号,这可能很有用。但是SO中有人声称这是因为gzip优化
变量的缩小和缩小 - 关于这个我对 IE 感兴趣,它可以从变量的缩小中受益吗
哪些是真的,哪些是无用的?
我想知道以下任何技术是否会增加任何性能:
!!variable - 我在 jquery 及其插件中看到了这个 - 转换为 bool
null == 变量 - 如果您错过第二个等号,这可能很有用。但是SO中有人声称这是因为gzip优化
变量的缩小和缩小 - 关于这个我对 IE 感兴趣,它可以从变量的缩小中受益吗
哪些是真的,哪些是无用的?
是的,如果你不尝试自己做,而是使用像优秀的谷歌的 Closure Compiler这样的缩小器,缩小可以构建更小的文件。
关于执行性能,增益并不明显,甚至可能是轻微的负数,这取决于它是如何完成的。但这不是目标:目标是节省带宽。
除非您有足够的信心可以做得比经过验证的那些提供的更好,否则没有理由自己编写一个缩小器。这不是一件容易的事。
现在,看看你的第一个特定技巧(两个第一个命题),它们对于缩小几乎没有用。
注意 JS 缩小是独立于 JS 引擎的,这里没有具体的 IE 问题。
缩小作品。主要目标是使生成的 JS 文件更小,以便页面在加载 js 资源时不会使用那么多带宽。诸如 Google 的 Closure Compiler 之类的缩小器可以通过执行诸如消除死代码之类的任务来走得更远,这可以进一步缩小代码。
更新
您的前两个示例并不真正适用于缩小,并且性能节省可以忽略不计。正如我之前提到的,Google 的 Closure Compiler 将执行死代码消除。但它还可以做的是执行函数和不断内联,这可能会为您提供一些性能优势,但据我所知,即使是最激进的优化也不会做更多的事情。也就是说,我不知道有任何缩小器可以将您的代码转换为性能更高的代码。我不知道 IE 会从中受益多少,但我想说的是,由于代码确实没有被积极地转换为性能更高的代码,因此不会产生太大的影响。也许变量的缩小意味着浏览器内的符号表中占用的内存更少,但我没有