---
# System prepended metadata

title: 2022-04-06 你所不知道的 JS  ES6 與未來發展
tags: [2022/04/06, JS, 讀書心得, 進度筆記, 前端心得, ES6]

---

# 2022-04-06 你所不知道的 JS  ES6 與未來發展  
###### tags: `JS` `ES6` `2022/04/06` `進度筆記` `前端心得` `讀書心得`  
---

# 語言規格(Language specification)  
> 或稱規範語言,是用於系統分析和設計, 不 像程式語言是用於系統運行。

- 規格語言不會直接使用, 比程式語言更抽象。  
- 規格語言通常會精簡化。  
- 如果這個 Program 沒有問題, 那它可以說是正確性的。   

----

# 命令稿(或稱手稿)語言 scripting language  
- 語法結構 簡單。    
- 學習和使用 通常也簡單    
- 通常以 直譯(Interpreting) 為主, 而不是編譯編譯(Compiling) 為主。  
- Code 的開發產能會優於執行效能。   

> 例如 JavaScript(簡稱 JS), [perl](https://www.cyut.edu.tw/~ckhung/b/pl/), [python](http://www.python.org), [php](http://www.php.net),  [ruby](http://www.ruby-lang.org/en/) 或是 
 UNIX 上的 shells, MS Windows 的 visual basic...等, 可以算是 scripting languages
。  
- ==用這些語言所寫的 code, 執行方式都是以直譯(interpreting) 為主。==   

- 但上述這些語言寫的 code, 執行效率可能不如 C, C++, Java...等以編譯(compiling)為主的程式, 但 "研發" 的速度上, 解譯會比編譯快上許多, 甚至數倍。  

## 編譯和直譯的語言  
- 多半用於整合系統既有的 元件(unit)。
- 如果以蓋房子為喻:  
```
一般傳統編譯語言 C, C++, Java, Pascal 
像建造公寓所用的重型機械, 
怪手、推高機、山貓...等等。

也因重機械操作費時費力費工, 所以
成本高, 但成品單價也高, 可以造出

很多很多的制式公寓。

也能給很多使用者用~

如果用 公共運輸工具 做比喻, 
傳統編譯語言就像是捷運(MRT) , 一條列車造價高, 
但可以使用的客戶比較多。
```

```
而直譯語言則像是, 師傅們在做房屋裝潢、布置時所使用到的工具, 操作起來比較不費工, 但一次可能只造一棟公寓的裝潢, 因此

使用者比較少, 單價也比較低。

如果以 公共運輸工具 來比喻, 
Scripting 就像是 Taxi, 成本也許較低, 
能載的客戶也少, 可能利潤也稍低。
```

- 但其實現在的 Scripting language 可以做高階的整合, 也可以寫低階的程式語言, 甚至也有自己的 編譯器, 高階程式語言與手稿語言幾乎沒有明確界線, 例如[swig](https://www.cyut.edu.tw/~ckhung/b/mi/swig.php) 可以幫 C 語言寫懶人包(函式庫)與許多 Scripting language 連結。  
- 目前很多 Scripting language 可完全替代傳統編譯語言。  

# 參考文章:  

[Scripting Languages 簡介](https://www.cyut.edu.tw/~ckhung/b/pr/scripting.php)   

[手稿語言](https://zh.wikipedia.org/wiki/%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80)   

----

# ECMAScript 2015 Language Specification  
> 而 ECMAScript 是基於 直譯語言 所做的規範, JS 正是基於 ECMAScript 所實作的。  

- ECMAScript 是由 **ECMA-262 specification** 中的  [Ecma International](https://www.ecma-international.org/ "http://www.ecma-international.org/") standards organization 訂立標準規範的。   

# 參考文件:   
  
[JavaScript 語言的資源](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Language_Resources)   

----

