JavaScript 6 看上去很美

碼頭工人 13年前發布 | 8K 次閱讀 JavaScript

本文是從 ECMAScript 6 looks promising 這篇文章翻譯而來。

JavaScript 6 讓我很興奮,這是我看了 David Herman 在 YUIConf 2011 大會上的演講后的反應。我非常希望這些語言特征能盡快的在 V8 引擎上實現,這樣我就可以在 node.js 里使用它們了。這些新增加的語言特征對于一個使用 JavaScript 的程序員來說,解決了很多以前使用起來很不方便的東西。盡管這個標準中 2013 年才能制定完成(大會上 David 這樣說的),谷歌瀏覽器和火狐瀏覽器很有可能會提前實現這些特征。

從我個人來說,下面的這些特征我很感興趣:

let 關鍵字

let 關鍵字能產生一個代碼塊內的變量范圍。因為 var 有一個函數式的范圍概念,這有時候容易產生出不注意的錯誤。以后,我們完全使用 let 來代替var,從而避免這樣的錯誤。

缺省參數

function foo (bar="baz") { console.log (bar); }

有了缺省參數,省去了很多折騰的代碼。

非嚴格的解構方式

很像 Python 語言,解構時不需要嚴格匹配。

let [x,y] = [3,4,5];   // x=3, y = 4

多行模式的字符串表達

你可以簡單的使用 ` (反點號)操作符來聲明一個多行字符串。

var htmlString = `Say hello tomulti-linestrings!`

模板化

你可以通過這種方式把 JavaScript 變量嵌入到字符串中:

var firstName = "Jack"; var message = `Hello ${firstName}!`; // "Hello Jack!"

List 復合操作

同樣,這也是一個非常 Python 的結構:

let even = [ x for (x in values ([1,2,3,4,5,6])) if (x %2 === 0) ];

使用 values () 能夠讓 x 來表示 List 里的成員的值,而不是成員變量。你也可以使用新的 for of 語法來實現這樣的功能:

let even = [ x for (x of [1,2,3,4,5,6]) if (x%2 === 0) ];

除此之外, map, filter, reduce 等等概念也將會成為新標準的內容之一 (有一些功能已經在谷歌瀏覽器和火狐瀏覽器里被實現,IE9也有不少這方面的改進)。

更新:

發現這個帖子被頂到了 HN 的首頁,我必須要加上遺漏的新標準中的模塊系統操作功能。演講中的例子:

import { $ } from "jquery.js" import { map, each } from "underscore.js"

還是一樣,全是 Python 的套路!被引用的 JavaScript 文件會代碼執行前加載的你的瀏覽器中。

來自: 外刊IT評論

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!