write less,do more
在前端的蛮荒时代,jQuery 的出现无疑是革命性的,它极大地提升了 js 的开发体验。
- 浏览器兼容:IE 6.0+、Chrome、FireFox 3.6+、Safari 5.0+、Opera 等(现在的 2+、3+ 版本不在讨论范围内)
- 链式语法、短小清晰的多功能接口。
- 高效可扩展的 Css 选择器。
- 丰富的插件。
创建函数作用域,防止变量冲突。
- 在 jQuery 代码块中访问
window
可以直接在当前作用域找到,而不用从顶层作用域找,更快。 - 压缩代码时可以进行优化。
- 同
window
快速访问。 - 压缩代码时可以进行优化。
- 防止
undefined
被重写。(虽然目前越来越多的浏览器已经保护了undefined
,但是为了兼容 IE 8-、Chrome 16.0.912.77-、FireFox 3.6.28-、Safari 4.0.2-、Opera 11.52- 的浏览器,传入undefined
还是十分必要的,尤其是 IE 8,国内份额还有 15% 以上)
- 匿名自执行函数前一行没有分号,那么它的第一对括号会被当做是函数调用。
- 匿名自执行函数后没有分号,那么下一行跟着的自执行函数的第一队括号会被当做函数调用。
- 上面两个问题在代码
concat
的时候往往会出现,因此很多自执行匿名函数会在前后加上分号。jQuery 在前面没有加分号,主要可能是它希望其它的库或者用户能够保证concat
时,前面的语句是有分号的。