---
# System prepended metadata

title: Javascriptt初步認識

---

# 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)
>寫得很好，很清楚