Skip to content

Instantly share code, notes, and snippets.

@fillano
Last active August 29, 2015 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fillano/880e6853cd808f8b4db2 to your computer and use it in GitHub Desktop.
Save fillano/880e6853cd808f8b4db2 to your computer and use it in GitHub Desktop.
ECMAScript 2015課程簡介

什麼是ECMAScript?

ECMA(European Computer Manufacturers Association)是一個標準組織,他底下有許多委員會,負責制定各種標準。其中一個標準叫做ECMA-262,就是Javascript的標準。這個標準除了定義型別、語法、敘述等程式語言的基本要素,也定義了一套核心的物件。不論在怎樣的平台上執行,Javascript都遵循一樣的語法,也一定內建了這些核心物件。我們所熟悉的Javascript,就是由這些核心的部分,再加上其他函數與物件所組成。在網頁中使用Javascript,除了核心物件,最重要的就是HTML DOM相關物件。如果使用伺服器端的語言例如Node.js,也是由這些核心物件加上執行環境提供的物件所組成。

註:ECMA還制定了其它各種不同的標準,例如C#的標準是ECMA-334,Microsoft Office使用的Office Open XML格式的標準是ECMA-376。對於軟體工程師來說,可能還聽過CLI、Eiffel、JSON、Dart等語言與技術,他們的標準都是由ECMA組成委員會制定的。

ECMAScript的演進

目前大家使用的Javascript,其語法主要部分是1999年制定的ECMA-262 Edition 3(簡稱ES3好了)。ES4因為一些原因胎死腹中,繼ES3之後另外一個小改版是2009年的ES5。今年(2015),ES6標準終於完成,這也是從ES3以來對Javascript這個程式語言最大的更新。除了程式語言的更新,它甚至連標準的名稱都改了XD,ECMA-262 Edition 6,現在正式的名字叫做ECMAScript 2015 Language Specification,改用西元年來代替數字版號。

目前的原生Javascript環境對於ECMAScript 2015的支援已經越來越好,同時也有一些polyfill工具可以讓舊的平台也可以支援部分新語法與物件的執行,越早嘗試,就可以越早體驗新標準帶來的便利與可以解決的問題。尤其是在伺服器端環境,比較不需要考慮向下相容的問題,有機會就可以試試看。

簡單小例子

  • arrow function
elm.addEventListener('click', e => e.preventDefault());
  • spread
var a = [2,3,4]
var b = [1, ...a, 5];//var b = [1,2,3,4,5];
  • template string
var show = (name, cb) => console.log(cb(name));
show('John', x => `Hello, ${x}!
Welcome to ECMAScript 2015.`);
//顯示 'Hello, John!\nWelcome to ECMASCript 2015.'
  • destructuring
var {name: {pt: a}} = {name: {pt: 'me inside'}};//var a = 'me inside';
var {p} = {p: 3366};//var p = 3366;
  • block scope
!function() {
   'use strict';
   let i = 0;
   for(let i=0; i<10; i++) {
      console.log(i);//0~10
   }
   console.log(i);//0
}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment