# Javascriptt初步認識 > 當初學JS不懂的地方,透過書籍回顧 > 參考書籍《新一代JavaScript程式設計精解》 ## 1. JavaScript 在網頁上面扮演什麼角色? - 在我目前處裡的專案中,常與Ajex互相搭配使用,通常在處理"做了什麼動作,因而有什麼反應"這件事上面 - 如果依照程式語言來理解就是 ==偵測==到了什麼(按鍵),所以==反應==了什麼(回傳數值或是網頁顯示提醒等) ### JavaScript的特徵 - 一種腳本語言(Script) - 跟Java沒有關聯 - 何謂"腳本語言"?C shell是否算是腳本語言? - C shell是腳本語言 - 一行讀取後就立即執行,批次處理,有這特性的就算腳本語言 - 直譯式語言(Interpreted language) - 執行程式時,從頭開始一行一行解析、轉譯程式為機械碼,直接執行 - 同樣為直譯式語言的有:python,matlab - 相反:編譯式語言(Compiled language) - 需要透過"編譯器"來將程式先轉為機械碼,再執行 - 語言:fortran 打完fortran檔後,儲存.95,然後編譯f95 XX.f95,然後再執行編譯過的檔案(沒記錯的話 - 可用於各種環境 - 環境:指程式可執行的地方 - 初期只侷限瀏覽器,後期可用在不同環境中 - 例如:Node.js 以伺服器為主的JavaScript執行環境 - 由多種功能構成(後續補充) --- ## 2.Ajex與JavaScript之間有什麼關係? - Ajex (Asynchronous JavaScript + XML) - Asynchronous 非同步adj.,反義詞 Synchronous 同步 - 指運行程式碼的方式 - 同步:網站一次性重刷,全部資訊一次upload(我全都要! - 非同步:只更新部分資訊,且網站能繼續使用,不會因為等待伺服器回傳資料的過程而等待 - Asynchronous JavaScript 即是透過JavaScript做到只更新部分資訊的效果(非同步) - XML 一種文件名稱,Ajax透過他回傳或接收的資訊 - AJAX可以傳送並接收多種格式的資訊,XML則是其中一種資料格式,也包括 JSON、HTML或文字檔案。 使用者使用網頁時,如下圖,透過操作網頁,同時與伺服器連線回傳所要的資料 ![](https://i.imgur.com/OdZGVp6.png) 對比使用Ajex ![](https://i.imgur.com/9G0AXoO.png) - 不是另一種語言名稱,應該說是把多種技術組合在一起,是連續技(? - Ajex==只針對使用者所需要的網頁資訊==來做更新, - 當使用者選擇某一個選項,只會顯示使用者所需要的資訊, - 網頁不會全部再重新載入,所以對伺服器負擔較少。 實際處理專案上,我最頭痛的就是Ajex,因為看不懂所以變得很難記加上對專有名詞不熟,還好每次都有前輩的程式碼來做參考,不然自己摸就會花很多時間了。 --- ### 參考資料 [腳本語言 維基百科](https://zh.m.wikipedia.org/zh-hant/%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80) [非同步(Asynchronous)與同步(Synchronous)的差異](https://medium.com/@hyWang/%E9%9D%9E%E5%90%8C%E6%AD%A5-asynchronous-%E8%88%87%E5%90%8C%E6%AD%A5-synchronous-%E7%9A%84%E5%B7%AE%E7%95%B0-c7f99b9a298a) >廢話有點多,但能大概理解 [解釋 AJAX 的工作原理](https://ithelp.ithome.com.tw/m/articles/10261440) >寫得很好,很清楚