W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
讓我們來看看 JavaScript 有什么特別之處,我們可以用它實現(xiàn)什么,以及哪些其他技術可以與其搭配產生奇妙的效果。
JavaScript 最初被創(chuàng)建的目的是“使網頁更生動”。
這種編程語言寫出來的程序被稱為 腳本。它們可以被直接寫在網頁的 HTML 中,在頁面加載的時候自動執(zhí)行。
腳本被以純文本的形式提供和執(zhí)行。它們不需要特殊的準備或編譯即可運行。
這方面,JavaScript 和 Java 有很大的區(qū)別。
為什么叫 JavaScript?
JavaScript 在剛誕生的時候,它的名字叫 “LiveScript”。但是因為當時 Java 很流行,所以決定將一種新語言定位為 Java 的“弟弟”會有助于它的流行。
隨著 JavaScript 的發(fā)展,它已經成為了一門完全獨立的語言,并且也擁有了自己的語言規(guī)范 ECMAScript。現(xiàn)在,它和 Java 之間沒有任何關系。
如今,JavaScript 不僅可以在瀏覽器中執(zhí)行,也可以在服務端執(zhí)行,甚至可以在任意搭載了 JavaScript 引擎 的設備中執(zhí)行。
瀏覽器中嵌入了 JavaScript 引擎,有時也稱作“JavaScript 虛擬機”。
不同的引擎有不同的“代號”,例如:
上面這些術語很容易記住,因為它們經常出現(xiàn)在開發(fā)者的文章中。我們也會用到這些術語。例如,如果“V8 支持某個功能”,那么我們可以認為這個功能大概能在 Chrome、Opera 和 Edge 中正常運行。
引擎是如何工作的?
引擎很復雜,但是基本原理很簡單。
引擎會對流程中的每個階段都進行優(yōu)化。它甚至可以在編譯的腳本運行時監(jiān)視它,分析流經該腳本的數(shù)據(jù),并根據(jù)獲得的信息進一步優(yōu)化機器代碼。
- 引擎(如果是瀏覽器,則引擎被嵌入在其中)讀取(“解析”)腳本。
- 然后,引擎將腳本轉化(“編譯”)為機器語言。
- 然后,機器代碼快速地執(zhí)行。
現(xiàn)代的 JavaScript 是一種“安全的”編程語言。它不提供對內存或 CPU 的底層訪問,因為它最初是為瀏覽器創(chuàng)建的,不需要這些功能。
JavaScript 的能力很大程度上取決于它運行的環(huán)境。例如,Node.js 支持允許 JavaScript 讀取/寫入任意文件,執(zhí)行網絡請求等的函數(shù)。
瀏覽器中的 JavaScript 可以做與網頁操作、用戶交互和 Web 服務器相關的所有事情。
例如,瀏覽器中的 JavaScript 可以做下面這些事:
為了用戶的(信息)安全,在瀏覽器中的 JavaScript 的能力是受限的。目的是防止惡意網頁獲取用戶私人信息或損害用戶數(shù)據(jù)。
此類限制的例子包括:
<input>
? 標簽選擇了文件。有很多與相機/麥克風和其它設備進行交互的方式,但是這些都需要獲得用戶的明確許可。因此,啟用了 JavaScript
的網頁應該不會偷偷地啟動網絡攝像頭觀察你,并把你的信息發(fā)送到 美國國家安全局。http://anysite.com
? 網頁必須不能訪問 ?http://gmail.com
?(另外一個標簽頁打開的網頁)也不能從那里竊取信息。
如果在瀏覽器環(huán)境外(例如在服務器上)使用 JavaScript,則不存在此類限制?,F(xiàn)代瀏覽器還允許安裝可能會要求擴展權限的插件/擴展。
至少有 3 件事值得一提:
- 與 HTML/CSS 完全集成。
- 簡單的事,簡單地完成。
- 被所有的主流瀏覽器支持,并且默認開啟。
JavaScript 是將這三件事結合在一起的唯一的瀏覽器技術。
這就是為什么 JavaScript 與眾不同。這也是為什么它是用于創(chuàng)建瀏覽器界面的使用最廣泛的工具。
此外,JavaScript 還可用于創(chuàng)建服務器和移動端應用程序等。
不同的人想要不同的功能。JavaScript 的語法也不能滿足所有人的需求。
這是正常的,因為每個人的項目和需求都不一樣。
因此,最近出現(xiàn)了許多新語言,這些語言在瀏覽器中執(zhí)行之前,都會被 編譯(轉化)成 JavaScript。
現(xiàn)代化的工具使得編譯速度非??烨彝该鳎瑢嶋H上允許開發(fā)者使用另一種語言編寫代碼并會將其“自動轉換”為 JavaScript。
此類語言的示例有:
這樣的語言還有很多。當然,即使我們在使用此類編譯語言,我們也需要了解 JavaScript。因為了解 JavaScript 才能讓我們真正明白我們在做什么。
一個好用的開源接口 Mock 工具:https://github.com/eolinker/eoapi
除了 Mock 功能,還集合了 API 管理和測試功能,還可以通過插件廣場幫助你將 API 發(fā)布到各個應用平臺,比如發(fā)布到網關上完成 API 上線,或者和低代碼平臺結合,將 API 快速變成低代碼平臺中可使用的組件等。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: