简单的vanilla JavaScript比使用jQuery或MooTools这样的框架更好吗?

Ami*_*gar 14 javascript jquery mootools javascript-framework

我想知道依赖jQuery或MooTools这样的框架是否是一个好主意,还是应该使用纯JavaScript?

除了避免重新发明轮子,它们是否增加了任何特定的价值?

由于框架对公众开放,是否有可能利用框架中可能出现的任何安全漏洞(当然,无意中:))?

在选择框架或其他方面是否还有其他要考虑的问题?

med*_*iev 39

  1. 框架解决了跨浏览器的错误,这些错误通常需要花费数小时的时间,因此您可以专注于功能而不必担心某些边缘案例浏览器错误...而不是浪费4-5个小时来解决与您的家人一起度过的错误.

  2. 像jQuery这样的框架非常适合加载动画,选择器和html操作等内容,因此通常会在库中内置某种功能,再次为您节省更多时间,API使实际完成复杂事务变得非常容易.

  3. 解释器和浏览器变得越来越快,所以我并不特别认为加载整个库是一个很大的问题.此外,多亏了Google等人,我们得到了非常快的cdns,现在很多网站都使用相同的URI来提取脚本,这意味着脚本的缓存速度和在其他网站上重用的速度更高.

  4. 不是每个Web开发人员都拥有自己的库,而是让成千上万的人集中精力来改进少数几个库,从而使跨浏览器的错误得到记录和修复,从而提高效率.

  5. 竞争是一件好事,光滑测试的结果导致了更快的选择器引擎,如Sizzle.开发人员不必担心琐碎的DOM错误意味着每天都会创建更复杂的库,这意味着入门级开发人员可以访问非常强大的插件.

就安全性而言,例如jQuery将检测浏览器是否能够本地解析JSON,如果是,则依赖于此.通常任何现代浏览器都会有这个,它比eval... 更安全,所以jQuery首先努力使用更安全,更安全的方法.如果没有可用的JSON.parse方法,它将使用eval.

在jQuery中要记住的一件重要事情是记住你仍然在使用Javascript进行编码.通常人们太在糖衣方法赶上和包装$,我想知道你仍然可以做到这一点是非常重要this.href的,而不是$(this).attr('href')如果你想例如一个绝对URI标准化.


Dav*_*one 8

不要轻视避免重新发明轮子的重要性.每次要编写新程序时都不会创建新计算机.

但除此之外,JavaScript库提供了更好的跨浏览器支持.这非常有用,快速浏览一下QuirksMode将会演示.

JavaScript框架使许多事情变得更容易.查看jQuery文档,您将看到它是多么容易做许多奇特的事情.

许多人已经扩展了JavaScript框架,因此有许多高质量的jQuery 插件(例如,它是我认识最好的框架),您可以使用它而无需自己编写.

JavaScript框架不太可能引入安全漏洞,因为它们不会暴露任何比使用纯JavaScript可以执行的功能更多的功能.