jQuery基础

什么是 jQuery
jQuery 是开源软件,使用 MIT 许可证授权。jQuery 的语法设计使得许多操作变得容易,如操作文档对象(document)、选择文档对象模型(DOM)元素、创建动画效果、处理事件、以及开发 Ajax 程序。jQuery 也给开发人员提供了在其上创建插件的能力。这使开发人员可以对底层交互与动画、高级效果和高级主题化的组件进行抽象化。模块化的方式使 jQuery 函数库能够创建功能强大的动态网页以及网络应用程序。
微软和诺基亚已宣布在他们的平台上绑定 jQuery。微软最初在 Visual Studio 中集成了 jQuery 以便在微软自己的 ASP.NET AJAX 框架和 ASP.NET MVC Framework 中使用,而诺基亚则在他的 Web 运行时组件开发平台中集成了 jQuery。MediaWiki 自从 1.16 版本后也开始使用 jQuery。
jQuery 1.3 版以后,引入全新的层叠样式表(CSS)选择器引擎 Sizzle。同时不再提供 Packed 版本,因为解压缩所消耗的时间,远大于所节省的下载时间,且不利于调试,且已有 Google AJAX Libraries API 等公开站台提供 jQuery 的 js 的引用服务,故 Packed 版本原本的优点已荡然无存。
注:定义来自维基百科。
我们可以简单的理解为 jQuery 是一个 JavaScript 函数库。jQuery 是一个轻量级的"写的少,做的多"的 JavaScript 库。
2.2 特色
使用多浏览器开源选择器引擎 Sizzle(jQuery 项目的派生产品)进行 DOM 元素选择
基于 CSS 选择器的 DOM 操作,使用元素的名称和属性(如 id 和 class)作为选择 DOM 中节点的条件
事件
特效和动画
Ajax
Deferred 和 Promise 对象来控制异步处理
JSON 解析
通过插件扩展
工具函数,如特征检测
现代浏览器中本地的兼容性方法,但对于旧版浏览器需要后备(fallback)方法,比如 inArray()和 each()
多浏览器(不要与跨浏览器混淆)支持
三、为什么要学习 jQuery
新闻一:
2018 年 7 月 25 日,Mislav Marohnić发了一条推文,宣布 GitHub.com 前端已经彻底删除了 jQuery。而且,还自问自答地解释,删除 jQuery 之后也没用其他框架,而是全部依赖原生 API。
新闻二:
Bootstrap 发布了最新版本 4.3.0(https://blog.getbootstrap.com/2019/02/11/bootstrap-4-3-0/),作为 Bootstrap 4.3 发布的一部分,团队也公布了下一个主要版本 Bootstrap 5 的开发计划。
开发团队表示在发布 v4.3 版本后,将会在开发 Bootstrap 5 的过程中实现一些关键变化,或许会是重大的变化,而这也将被认为是 Bootstrap 5 的基础。开发团队重点提到了以下几方面:
放弃 jQuery:Bootstrap 5 将删除 jQuery 作为依赖项。开发团队已经在这方面工作了很长时间,PR 也是处于正在进行中并已接近完成的状态(https://github.com/twbs/bootstrap/pull/23586)
改进开发分支:v3-dev 分支将成为 master 分支;v4-dev 则保持原样,不过会从该分支切出一个新的 master 分支来开发 v5 版本
从 Jekyll 迁移到 Hugo:目前已有一个 PR 正在进行并且已接近完成(https://github.com/twbs/bootstrap/pull/28014)
移除 jQuery 这个最大的依赖之后,开发团队表示未来将使用原生的纯 JavaScript 来代替 jQuery。这和去年 GitHub 改版重构页面时移除了 jQuery 的举措有点像。
当时 GitHub 的前端团队趁着改版的机会,在重构页面时乘机移除了其中的 jQuery,并且没有使用其它框架来代替 jQuery,而是使用原生 JS:
用 querySelectorAll 来查询 DOM 节点

使用 fetch 代替 ajax(在不支持的浏览器上使用 XHR)

使用代理事件来进行事件处理

为一些尚未实现的 DOM 标准写了 polyfill

更多地使用自定义元素 (CustomElement)

从这些信息来看,jQuery 正在一步步走向消亡,那么我们还有必要学习 jQuery 吗?首先我们来回顾一下 jQuery 的辉煌。
3.1 jQuery 的辉煌
jQuery 最初诞生于 2006 年 8 月,作者是 John Resig(https://zh.wikipedia.org/wiki/JQuery)。10 多年前,网页开发者(当时还没有“前端”这个概念)深受浏览器不兼容性之苦。以 jQuery 为代表的一批 JavaScript 库/框架应运而生。
jQuery 官网是这样描述的:

 
is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.jQuery

jQuery 强调的理念就是写的少,做的多(write less,do more)。它有如下的优势:
轻量级。强大的选择器。出色的 DOM 操作的封装。可靠的事件机制。完善的 ajax。不污染顶级变量。出色的浏览器兼容性。链式操作方式。隐式迭代。行为层与结构层的分离。丰富的插件支持。完善的文档。开源。2011 年新版的“犀牛书”第 6 版——JavaScript: The Definitive Guide, 6th(JavaScript 权威指南第六版)甚至拿出第 19 章整整 64 页篇幅隆重讲解了 jQuery(“Chapter 19. The jQuery Library”)。jQuery 从此走向鼎盛和辉煌。后来,随着前端交互越来越重和移动应用的普及,jQuery UI、jQuery Mobile 相继面世。时至今日,jQuery 仍然在支撑着数以千万计各种规模网站的运作——尽管聚光灯下已经不常看到她的身影。最近 10 年,是“前端行业”有史以来发展最快的 10 年。移动社交时代的到来不仅没有让桌面 Web 失色,反倒刺激了 Web 标准的迅猛改进。HTML5 不仅带来了极大的向后兼容性,也带来了更丰富的原生 DOM API。CSS 从 CSS3 开始走上模块化的快车道,文本样式、排版布局、媒体查询,各种新模块让人目不暇接。各大主流浏览器也在快速跟进,Firefox、Chrome、Opera、Safari、IE 乃至 Edge,都在积极重构甚至重写内核,争做支持 Web 标准的“楷模”。在这个大背景下,各大互联网公司不断调高兼容的 IE 版本号,从 8 到 9 到 10,再到 11。当然,还有 ECMAScript 语言标准。自从划时代的 ES6(ECMAScript 2015)发布之后,JavaScript 终于真正开始摆脱“玩具”语言的尴尬境地。更重要的,从 ES6 起,ECMAScript 也进入了快速迭代、每年发一版的节奏。ES7、ES8,以及 ES9,每次都会给这门语言注入更强大的语言特性。与此同时,Node.js 和 Babel 等服务端运行时及转译工具的出现,也让前端工程化,以及向传统工业级软件开发最佳实践靠拢的速度日益加快。谷歌主打 SPA(Single Page Application,单页应用)的 Angular 终于一枝独秀。不久,脸书推出的“在 JS 里写 HTML 一样优雅”的 React 则一路高歌猛进。最终,集各家所长且简单易用的 Vue 横空出世。前端开发已经从后“刀耕火种”时代的“农业文明”,逐渐进化为以大规模、可扩展、规范化、自动化为特征的准“工业文明”。俗话说:“皮之不存,毛将焉附。”随着时代变迁、技术进步,jQuery 赖以存在的环境正逐渐消失。如前所述,新的环境催生了一批框架新秀。曾经辉煌的 jQuery 终于走到了可以华丽谢幕的时刻。注:以上文章部分摘取自知乎文章:再见 jQuery,我的老朋友。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值