Skip to content

jQuery 是什麼?輕量 JavaScript 函式庫的前世今生

什麼是 jQuery:JavaScript 函式庫與跨瀏覽器

jQuery 是一個快速、輕量且功能豐富的 JavaScript 函式庫。它透過可在多種瀏覽器上運行、易於使用的 API,讓 HTML 文件的遍歷與操作、事件處理、動畫與 Ajax 都變得更加簡單。憑藉多功能性與可擴展性的結合,jQuery 改變了數百萬人編寫 JavaScript 的方式,最重要的是,它是免費的。

jQuery 官方標誌

如上所述,jQuery 本來就是使用 JavaScript 改寫出來的,因此 jQuery 和 JavaScript 兩者是可以並存、相輔相成的。只要是 JavaScript 能做到的事,jQuery 就一定做得到,不只做得到,還能做得更好更快速;但如果是 JavaScript 做不到的事,jQuery 也一樣做不到。

jQuery 特色

jQuery 之所以受歡迎,是因為它提供了一系列簡單方便而且相容性良好的操作,省去開發人員的部份煩惱。

特色說明
輕量級gzip 壓縮後甚至能小於 30KB。
語法簡潔把常用的 JavaScript 實作打包起來,寫法比原生簡便許多。
瀏覽器相容性相容現在主流的瀏覽器,開發者不必再為各家瀏覽器各寫一套。
鏈式操作對同一個對象的多個操作可以連寫在一行程式碼裡。
選取器可直接沿用 CSS 選取器的規則來選取與操作 DOM。
Ajax大幅簡化非同步的資料存取操作。

輕量級

jQuery 是輕量的 JavaScript 函式庫,gzip 壓縮後,甚至能小於 30KB。若專案用不到 Ajax 與動畫,還可以改用只留核心的精簡版,詳見 如何取得 jQuery

語法簡潔

將常用的 JavaScript 實作打包,因此比原生的寫法簡便許多。原生要先 選取 DOM 再逐一設定屬性的流程,在 jQuery 裡往往一行就結束了。

瀏覽器相容性

jQuery 基本上相容了現在主流的瀏覽器,讓開發者不必再為了瀏覽器的相容問題,去建立各別瀏覽器的相容函式庫。

鏈式操作方式

jQuery 的鏈式操作,可以把同一個對象的多個操作連寫在一行程式碼裡。

js
// 選一次元素,接著連續做三件事
$('#Dom').addClass('active').css('color', '#fff').fadeIn(400);

選取器

開發者可以使用 CSS 選取器 以及 jQuery 自訂的選取器,進行 DOM 的選取與操作,寫法請見 jQuery 的語法構成

Ajax

jQuery 簡化了非同步的操作,向伺服器要資料不必自己處理繁瑣的 XMLHttpRequest 流程。

擴充功能

jQuery UI

jQuery UI 是建立在 jQuery 函式庫上的套件工具,無論是建立互動的應用程式,還是僅僅利用一個彈窗加上日期選擇的操作介面,jQuery UI 都是不錯的選擇。

jQuery UI 官方網站

jQuery Mobile

jQuery Mobile 是用於行動裝置網頁應用的前端框架。

jQuery Mobile 官方網站

接下來讀什麼

建議依這個順序往下讀:先知道 如何取得 jQuery 並正確引入到網頁,接著認識 語法構成 ,就能開始動手操作 事件DOM 了。

常見問題

jQuery 和 JavaScript 是同一種東西嗎?

不是。JavaScript 是語言本身,jQuery 則是用 JavaScript 寫出來的函式庫。JavaScript 做得到的事 jQuery 都做得到,而且通常寫得更短;反過來說,JavaScript 做不到的事,jQuery 也一樣做不到。

jQuery 有多大?會拖慢網頁嗎?

3.x 的壓縮版 gzip 後大約 30KB 以內。若專案沒有用到 Ajax 與動畫效果,還可以改用 精簡版(slim) 進一步減少體積。

什麼是鏈式操作?

jQuery 的方法大多會回傳同一個物件,因此可以把多個操作接在同一行,例如:$('#Dom').addClass('active').fadeIn(),不必每次都重新選取一次元素。

現在還需要學 jQuery 嗎?

新專案多半直接用原生 JavaScript 或前端框架,但大量既有網站與外掛仍以 jQuery 撰寫,維護時看得懂、改得動仍然重要。學過 原生 DOM 操作 之後再看 jQuery,會覺得相當直觀。

jQuery UI 和 jQuery Mobile 是什麼?

兩者都是建立在 jQuery 之上的擴充套件。jQuery UI 提供日期選擇、拖曳、對話框等互動元件;jQuery Mobile 則是針對行動裝置網頁的前端框架。

延伸閱讀

參考資料:jQuery 官方網站