通过自己的理解再加上自己收集的一些资料总结如下:
- 各種封裝,主要目的就是爲了省心,拿jq來說:
- JQ对不同浏览器的事件,DOM对象,都进行了封装,各种操作都可以直接兼容各种浏览器, 要知道, 不同浏览器的区别不仅仅是在CSS里写"-webkit-"还是"filter"的区别, 连事件模型这种底层的东西都不一样= =
- JQ特有的CSS-LIKE选择器, 链式写法, 封装的各类animate函数, 封装了的异步加载, 都大幅提高了开发效率, 减少重复劳动
- JQ用delay和一系列的函数封装了AJAX操作, 这个功能目测还在不断改进和完善. 反正是比JS省心就是了.
- 其他就是有些常用函数JQ有所以不用自己写了,你比如浏览器检测...
- 插件不断丰富, 资料丰富 等等
当然,这样也导致了
- JQ比原生JS慢上 10倍(chrome)~100倍(ie). 具体数忘了, 反正是这个数量级的...尤其是有些人喜欢滥用选择器和不用链式写法。
不使用框架的话可以根据自己的业务写自己的代码,更有针对性,没有多余的代码;缺点是如果经验不足的话代码的兼容性和扩展能力较差,代码抽象的层次较低,要想做好的话需要经验和大量的时间和精力,最后也许会形成自己的框架。
使用框架的优势是代码兼容性较好,扩展能力好,抽象层次高,开发效率高,不需要太多经验也可以上手;缺点是业务简单时框架里的大部分代码是无用的,框架掩盖了一些问题的本质,对新手积累经验无益。