查看Bootstrap的缩小和未缩小的JS文件中的第一行代码,存在直接的差异:
// bootstrap.js
if (typeof jQuery === 'undefined') { ... }
Run Code Online (Sandbox Code Playgroud)
与
// bootstrap.min.js
if("undefined"==typeof jQuery)...
Run Code Online (Sandbox Code Playgroud)
(亲自看看:bootstrap.js和bootstrap.min.js)
我很困惑为什么这是允许的.我的(可能是天真的)理解是,===它始终是一种性能提升,并且通常可以防止出现意外结果(""例如,与0比较的虚假比较).似乎文件大小的收益在性能上丢失,并且可能导致错误的结果.有人能在这里光明吗?
在您引用的特定代码中,它是安全的,因为两个操作数的类型都是不变的,并且都是字符串.没有可能的性能节省,因为永远不需要任何类型的强制.想想是==这样的:
function ==(a, b) { // obviously this is fake
if (a === b) return true;
// type coercion ...
}
Run Code Online (Sandbox Code Playgroud)
另外,我个人认为应该使用===过==的,因为语义并没有因为性能差异.像这样的微优化对大多数人编写的绝大多数代码都不重要.(实际上有点讽刺的是,jQuery的存在检查是通过 oops错了:)typeof比较完成的;这本身就是一个值得怀疑的微优化.)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |