SlideShare uma empresa Scribd logo
1 de 20
1. JavaScript 起步走
• 學習目標
– 認識JavaScript發展過程
– 瞭解ECMAScript規範
– 認識TC39提案
– 準備JavaScript環境
2
JavaScript 的發展
• JavaScript創建者Brendan Eich
• Netscape Communications最初是希望能
將Scheme語言嵌入到Navigator
• 與Sun Microsystems已經在合作,希望能
在Navigator中支援Java,以在Web技術及
平臺上與微軟競爭
3
• Brendan Eich在《Effective JavaScript》前
言中這麼描述:
1995年5月在管理階層協迫性且互相衝突的命令:
「讓它看起來像 Java」、「讓初學者容易上手」、
「讓它能控制 Netscape 瀏覽器中幾乎所有的東
西」之下,我在十天內建立了 JavaScript。
4
不是 Java
• JavaScript一開始命名為Mocha
• 1995年9月Navigator 2.0的Beta版改名為
LiveScript
• 為了行銷這門語言,1995年12月被改名為
JavaScript
• JavaScript與Java之間,在風格或是典範根
本上是兩種完全不同的語言
5
JScript
• 1996 年 8 月在其Internet Explorer 3.0瀏
覽器中,推出了與JavaScript語法上極為類
似的腳本語言
• 不想與Sun處理商標問題,這門語言被命名
為JScript
6
ECMA-262 第三版
• Netscape於1996年11月正式向ECMA提交
語言規範
• ECMA-262於1997 年 6 月正式釋出首個版
本,亦被稱為ECMAScript
• JavaScript成為實現ECMAScript的語言
• JScript或後來的TypeScript等語言,也實
現了ECMAScript規範
7
• 1999年12月發佈的ECMA-262第三版,簡
稱ES3
• 直到下一個規範版本發佈,中間耗費了十
年之久的時間
• 在多方政治角力之後,原本應該是下個版
本的ES4被否決了
• 部份針對ES3缺失進行改進的特性,原預計
被發佈為ES3.1,後來在2009年12月重新
命名為ES5
8
ES5 到 ES6
• ES5釐清了ES3中許多模糊不清的規範,重
大特性之一是增加嚴格模式(Strict mode)
• 其他特性如設值(Setter)、取值(Getter)
函式的支援、更多的物件屬性設置,JSON
的支援也是ES5的重要規範之一
• ES6規範於2015年6月正式釋出,並希望之
後以年份來區分版本,因此又稱
ECMAScript 2015
9
認識 TC39 提案
• 從ES6之後,採頻繁、每年6月釋出新版本
的方式,令新版本的發佈常態化,新版本
內容僅包含當年已完成的新特性
• ECMAScript proposals
• TC39是負責ECMAScript規範的技術委員會
10
The TC39 Process
• 0:稻草人(Strawperson)
• 1:提案(Proposal)
• 2:草案(Draft)
• 3:侯選(Candidate)
• 4:完成(Finished)
11
12https://node.green
13https://github.com/williamkapke/node-compat-table
• 幾乎現有的常青(Even green)瀏覽器都
支援ES6
• 建議別再考慮支援Internet Explorer
• 至少以常青瀏覽器為目標環境並使用ES6,
或者在必須考量IE11的情況下使用ES5
14
JavaScript 引擎
• V8
– Google開發的開放原始碼JavaScript引擎
– 用於Google Chrome及Chromium,也是
Node.js使用的JavaScript引擎
• SpiderMonkey
– 早期在Netscape中使用的JavaScript引擎
– 由Mozilla Foundation維護,目前用於Firefox
瀏覽器
15
• JavaScriptCore
– 從KJS 與PCRE regular expression程式庫而來
– 使用於Apple的Safari等以WebKit作為呈現引
擎的瀏覽器中
• Chakra
– Internet Explorer使用的JavaScript引擎,本來
也使用於Edge瀏覽器
– 2018年底,Edge開始使用V8作為JavaScript
引擎,IE11則繼續使用Chakra
16
• Rhino
• QuickJS
• Hermes
17
下載、安裝 Node.js
18
19
20

Mais conteúdo relacionado

Mais procurados

Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてShigeru Tatsuta
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTLJustin Lin
 
VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshootingglbsolutions
 
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...Edureka!
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Justin Lin
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containersactualtechmedia
 
Adop patching gotchas ppt
Adop patching gotchas pptAdop patching gotchas ppt
Adop patching gotchas pptOT Ometie
 
Configurable horizontal pod autoscaler
Configurable horizontal pod autoscalerConfigurable horizontal pod autoscaler
Configurable horizontal pod autoscalerPaul Guth
 
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudOracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudMarkus Michalewicz
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)HungWei Chiu
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートオラクルエンジニア通信
 
Create Directory Under ASM Diskgroup
Create Directory Under ASM DiskgroupCreate Directory Under ASM Diskgroup
Create Directory Under ASM DiskgroupArun Sharma
 

Mais procurados (20)

Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
Java logging
Java loggingJava logging
Java logging
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
 
Continuous delivery-with-maven
Continuous delivery-with-mavenContinuous delivery-with-maven
Continuous delivery-with-maven
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
 
VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshooting
 
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...
Java Training | Java Tutorial for Beginners | Java Programming | Java Certifi...
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
CloudStack Networking
CloudStack NetworkingCloudStack Networking
CloudStack Networking
 
Virtualization Vs. Containers
Virtualization Vs. ContainersVirtualization Vs. Containers
Virtualization Vs. Containers
 
Adop patching gotchas ppt
Adop patching gotchas pptAdop patching gotchas ppt
Adop patching gotchas ppt
 
Configurable horizontal pod autoscaler
Configurable horizontal pod autoscalerConfigurable horizontal pod autoscaler
Configurable horizontal pod autoscaler
 
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudOracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)
 
Vue入門
Vue入門Vue入門
Vue入門
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
 
Create Directory Under ASM Diskgroup
Create Directory Under ASM DiskgroupCreate Directory Under ASM Diskgroup
Create Directory Under ASM Diskgroup
 

Semelhante a 1. JavaScript 起步走

一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkCevin Cheung
 
Ch13 整合Spring MVC
Ch13  整合Spring MVC Ch13  整合Spring MVC
Ch13 整合Spring MVC Justin Lin
 
人人网开发一站式体验
人人网开发一站式体验人人网开发一站式体验
人人网开发一站式体验zhen chen
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2twMVC
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》鍾誠 陳鍾誠
 
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美AgileCommunity
 
ASP.NET MVC 快速上手
ASP.NET MVC 快速上手ASP.NET MVC 快速上手
ASP.NET MVC 快速上手Study4TW
 
必备的 Java 参考资源列表
必备的 Java 参考资源列表必备的 Java 参考资源列表
必备的 Java 参考资源列表wensheng wei
 
Package安裝與使用
Package安裝與使用Package安裝與使用
Package安裝與使用Shengyou Fan
 
Android程式設計(7)
Android程式設計(7)Android程式設計(7)
Android程式設計(7)Roy Wang
 
Nuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的packageNuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的packageAlan Tsai
 
Javascript training
Javascript trainingJavascript training
Javascript training敏军 李
 
架設Hadoop叢集以及mapreduce開發環境
架設Hadoop叢集以及mapreduce開發環境架設Hadoop叢集以及mapreduce開發環境
架設Hadoop叢集以及mapreduce開發環境Phate334
 
Modern Web Development Introduction
Modern Web Development IntroductionModern Web Development Introduction
Modern Web Development IntroductionJohn Chou
 

Semelhante a 1. JavaScript 起步走 (17)

一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
J S教材
J S教材J S教材
J S教材
 
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_checkMvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
 
Ch13 整合Spring MVC
Ch13  整合Spring MVC Ch13  整合Spring MVC
Ch13 整合Spring MVC
 
人人网开发一站式体验
人人网开发一站式体验人人网开发一站式体验
人人网开发一站式体验
 
Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2Asp.net mvc 從無到有 -twMVC#2
Asp.net mvc 從無到有 -twMVC#2
 
twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有twMVC#02 | ASP.NET MVC 從無到有
twMVC#02 | ASP.NET MVC 從無到有
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
 
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
2013/10: Q con shanghai2013-davidko-如何利用 kanban让 scrum 更完美
 
ASP.NET MVC 快速上手
ASP.NET MVC 快速上手ASP.NET MVC 快速上手
ASP.NET MVC 快速上手
 
必备的 Java 参考资源列表
必备的 Java 参考资源列表必备的 Java 参考资源列表
必备的 Java 参考资源列表
 
Package安裝與使用
Package安裝與使用Package安裝與使用
Package安裝與使用
 
Android程式設計(7)
Android程式設計(7)Android程式設計(7)
Android程式設計(7)
 
Nuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的packageNuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的package
 
Javascript training
Javascript trainingJavascript training
Javascript training
 
架設Hadoop叢集以及mapreduce開發環境
架設Hadoop叢集以及mapreduce開發環境架設Hadoop叢集以及mapreduce開發環境
架設Hadoop叢集以及mapreduce開發環境
 
Modern Web Development Introduction
Modern Web Development IntroductionModern Web Development Introduction
Modern Web Development Introduction
 

Mais de Justin Lin

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤Justin Lin
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理Justin Lin
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題Justin Lin
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步Justin Lin
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能Justin Lin
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組Justin Lin
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換Justin Lin
 
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構Justin Lin
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組Justin Lin
 
7. 例外處理
7. 例外處理7. 例外處理
7. 例外處理Justin Lin
 
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承Justin Lin
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別Justin Lin
 
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式Justin Lin
 
3.型態與運算子
3.型態與運算子3.型態與運算子
3.型態與運算子Justin Lin
 
1. Python起步走
1. Python起步走1. Python起步走
1. Python起步走Justin Lin
 
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDEJustin Lin
 
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Justin Lin
 

Mais de Justin Lin (20)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
 
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
 
7. 例外處理
7. 例外處理7. 例外處理
7. 例外處理
 
6. 類別的繼承
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
 
4. 流程語法與函式
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
 
3.型態與運算子
3.型態與運算子3.型態與運算子
3.型態與運算子
 
1. Python起步走
1. Python起步走1. Python起步走
1. Python起步走
 
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
 
Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄Python 3.9 技術手冊目錄
Python 3.9 技術手冊目錄
 

1. JavaScript 起步走

  • 1.
  • 2. 1. JavaScript 起步走 • 學習目標 – 認識JavaScript發展過程 – 瞭解ECMAScript規範 – 認識TC39提案 – 準備JavaScript環境 2
  • 3. JavaScript 的發展 • JavaScript創建者Brendan Eich • Netscape Communications最初是希望能 將Scheme語言嵌入到Navigator • 與Sun Microsystems已經在合作,希望能 在Navigator中支援Java,以在Web技術及 平臺上與微軟競爭 3
  • 4. • Brendan Eich在《Effective JavaScript》前 言中這麼描述: 1995年5月在管理階層協迫性且互相衝突的命令: 「讓它看起來像 Java」、「讓初學者容易上手」、 「讓它能控制 Netscape 瀏覽器中幾乎所有的東 西」之下,我在十天內建立了 JavaScript。 4
  • 5. 不是 Java • JavaScript一開始命名為Mocha • 1995年9月Navigator 2.0的Beta版改名為 LiveScript • 為了行銷這門語言,1995年12月被改名為 JavaScript • JavaScript與Java之間,在風格或是典範根 本上是兩種完全不同的語言 5
  • 6. JScript • 1996 年 8 月在其Internet Explorer 3.0瀏 覽器中,推出了與JavaScript語法上極為類 似的腳本語言 • 不想與Sun處理商標問題,這門語言被命名 為JScript 6
  • 7. ECMA-262 第三版 • Netscape於1996年11月正式向ECMA提交 語言規範 • ECMA-262於1997 年 6 月正式釋出首個版 本,亦被稱為ECMAScript • JavaScript成為實現ECMAScript的語言 • JScript或後來的TypeScript等語言,也實 現了ECMAScript規範 7
  • 8. • 1999年12月發佈的ECMA-262第三版,簡 稱ES3 • 直到下一個規範版本發佈,中間耗費了十 年之久的時間 • 在多方政治角力之後,原本應該是下個版 本的ES4被否決了 • 部份針對ES3缺失進行改進的特性,原預計 被發佈為ES3.1,後來在2009年12月重新 命名為ES5 8
  • 9. ES5 到 ES6 • ES5釐清了ES3中許多模糊不清的規範,重 大特性之一是增加嚴格模式(Strict mode) • 其他特性如設值(Setter)、取值(Getter) 函式的支援、更多的物件屬性設置,JSON 的支援也是ES5的重要規範之一 • ES6規範於2015年6月正式釋出,並希望之 後以年份來區分版本,因此又稱 ECMAScript 2015 9
  • 10. 認識 TC39 提案 • 從ES6之後,採頻繁、每年6月釋出新版本 的方式,令新版本的發佈常態化,新版本 內容僅包含當年已完成的新特性 • ECMAScript proposals • TC39是負責ECMAScript規範的技術委員會 10
  • 11. The TC39 Process • 0:稻草人(Strawperson) • 1:提案(Proposal) • 2:草案(Draft) • 3:侯選(Candidate) • 4:完成(Finished) 11
  • 14. • 幾乎現有的常青(Even green)瀏覽器都 支援ES6 • 建議別再考慮支援Internet Explorer • 至少以常青瀏覽器為目標環境並使用ES6, 或者在必須考量IE11的情況下使用ES5 14
  • 15. JavaScript 引擎 • V8 – Google開發的開放原始碼JavaScript引擎 – 用於Google Chrome及Chromium,也是 Node.js使用的JavaScript引擎 • SpiderMonkey – 早期在Netscape中使用的JavaScript引擎 – 由Mozilla Foundation維護,目前用於Firefox 瀏覽器 15
  • 16. • JavaScriptCore – 從KJS 與PCRE regular expression程式庫而來 – 使用於Apple的Safari等以WebKit作為呈現引 擎的瀏覽器中 • Chakra – Internet Explorer使用的JavaScript引擎,本來 也使用於Edge瀏覽器 – 2018年底,Edge開始使用V8作為JavaScript 引擎,IE11則繼續使用Chakra 16
  • 19. 19
  • 20. 20