ようこそJavaScript2.0

JavaScriptはウェブを席巻しており、その中核を成すECMAScriptも成熟期を迎えています。今年半ばにリリース予定の新しい仕様(ES6またはJS2)には、既にテスト可能な数多くの革新的な機能が搭載されています。現在、Firefoxが最も優れたサポートを提供していますが、 Google Traceurなどのトランスパイラによるポリフィルも可能です。以下に、ES6の新機能の概要を簡単に説明します。


新しいキーワードletvarよりもはるかに優れています:スコープは他の言語(C / C ++、Java)とまったく同じように動作するようになりました。そのため、if-blockにも独自のスコープがあります。 巻き上げ、つまり、それぞれのスコープ内での変数宣言(値の割り当てではない)の繰り越しも修復されます:

console.log(x);
var x = 'foo'; 
// undefined

console.log(y);
let y = 'bar';
// not initialized

その他の革新のリストは長いです。定数 (const)、関数のデフォルト値 (function pow(a,b=2) { return Math.pow(a,b); })、関数の新しい表記法 (let pow = (a,b=2) => Math.pow(a,b);)、多数の新しい関数 (repeat()、contains()、startsWith()、find()、findIndex())、... の新しいループ構造。

また、Set、Map、Proxy、Symbolといった新しいデータ型、`import`を使って他のJavaScriptファイルの一部をインポートできる機能、そしてクラスと継承のための新しい直感的な構文も特筆すべき点です。しかし、多くの場合、文字列リテラルに改行を含めることができる機能(特別な引用符に注意)など、小さくても待ち望まれていた機能が注目されます。:

`foo

bar`

JavaScriptは、単なるウェブサイトのちょっとした工夫のためのツールにとどまらず、デスクトップアプリケーションに匹敵するほど強力で高性能なウェブアプリケーションを作成するために長年活用されてきました。豊富な新機能とES6への対応により、プログラミングはこれまで以上に楽しくなっています。

新しい定数Number.EPSILONを使用して、2つの数値が等しいかどうかを常に確認したいとは思わなかったのは誰ですか。その値は、1と次に高い浮動小数点値の差を示します。

let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;
バック