ホームページ >ウェブフロントエンド >jsチュートリアル >W3CグループのJavaScript 1.8の新機能紹介_基礎知識
JavaScript 1.8 は、Gecko 1.9 (Firefox 3 に統合される予定) の一部として利用可能になる予定です。これは JavaScript 1.7 と比較すると小さなアップデートにすぎませんが、ECMAScript 4/JavaScript 2 に向けた進化の痕跡がいくつか含まれています。 JavaScript 1.8 には、JavaScript 1.6 および JavaScript 1.7 のすべての新機能も含まれます。
JavaScript 1.8 の使い方
JavaScript 1.8 の新機能を HTML で使用するには、次のように記述する必要があります。
<script>JavaScript シェルと JavaScript を使用する場合XPCOM コンポーネント、または XUL <BR> 要素では、最新の JS バージョン (Mozilla 1.9 では JS1.8) が自動的に使用されます。 <BR>新しいキーワード「yield」と「let」を使用する必要がある場合は、バージョン 1.7 以降を指定する必要があります。これは、作成したコードでこれら 2 つのキーワードが変数名または関数名として使用される可能性があるためです。新しいキーワードを使用しない場合は、JavaScript のバージョンを指定する必要はありません。 <STRONG>式クロージャー<BR> <BR>この新しく追加された機能は、実際には単純な関数を記述するための便利な方法であり、言語を一般的な Lambda 表記法に近づけます。<BR>JavaScript 1.7 以前のバージョン: <BR> function(x) { return x * x; } <BR>JavaScript 1.8: <BR>function(x) x * x <BR>この構文では、中括弧と 'return' ステートメントを暗黙的に省略できます。このように書いても、表面的に短く見えるだけで、他にメリットはありません。 <BR>例: <STRONG><BR>イベント ハンドラーをバインドする簡単な方法: <BR>document.addEventListener("click", function() false, true); <BR>この定義を JavaScript で記述します。 -1.6 での配列関数の書き込み: <BR>elems.some(function(elem) elem.type == "text"); <STRONG><BR>ジェネレーター式<BR>この新しい追加機能により、次のことが可能になります。ジェネレーター (JavaScript 1.7 で導入) を簡単に作成できます。通常、以前は、yield を含むカスタム関数を作成する必要がありましたが、この新機能により、配列の概念に似た構文を使用してスタンドアロンのジェネレーター ハンドルを作成できるようになります。 <BR>JavaScript 1.7 では、オブジェクトのカスタム ジェネレーターを作成するために次のようなコードを記述する必要がある場合があります: <BR>function add3(obj) { <BR>for ( let i in obj ) <BR>yield i 3 ; <BR>} <BR>let it = add3(someObj); <BR>while (true) { <BR>document.write(it.next() "<br>n "); 🎜>} <BR>} catch (err if err instanceof StopIteration) { <BR>document.write("End of Record.<BR>n"); <br>} <BR><BR>at JavaScript 1.8 では、ジェネレーター関数を再構築する必要がなく、代わりにジェネレーター式を使用できます。 <STRONG><BR>let it = (i 3 for (i in someObj)); try { <BR>while (true) { <BR>document.write(it.next() "<BR>n"); <br>} <BR>} catch (err if err instanceof StopIteration) { <BR>document.write("レコードの終わり。<BR> >n"); <br>} <BR>ジェネレータ式は数値と同様に関数に渡すこともできます。ジェネレーターは、役に立つために絶対に必要な場合にのみ実行されることは非常に注目に値します (一般的な配列概念の条件として事前構成されていない)。この違いは、次の例で確認できます。 <BR><BR>JavaScript 1.7 配列の概念の使用<STRONG><BR>handleResults([ i for ( i in obj ) if ( i > 3 ) ]); handleResults( results ) { for ( let i in results ) <BR>// ... <BR>} <BR>JavaScript 1.8 ジェネレータ式を使用します<BR>handleResults( i for ( i in obj ) if ( i > 3 ) ); <BR>function handleResults( results ) { <BR>for ( let i in results ) <BR>// ... <BR>} <BR>これら 2 つの例の最大の違いは次のとおりです。ジェネレーター式を使用する場合、「obj」構造を合計で 1 回ループするだけで済みますが、最初の例では再帰中に再度ループされます。 <BR>JavaScript 1.8.1 <BR>JavaScript 1.8.1 は Gecko 1.9.1 に含まれています (Firefox 3.5 に統合される予定です)。このバージョンにはいくつかの更新があり、主にジャストインタイム コンパイル トレースの追加に重点が置かれています。「Tracemonkey ジャストインタイム コンパイラ」を参照してください。 <BR>もちろん、より重要な変更は、API のコールバック ブランチの削除とコールバック オペレーションの置き換えです。詳しくは、このニュースグループの投稿を参照してください。 <BR>追加部分 <BR>Object.getPrototypeOf() <BR>この新しいメソッドは、指定されたオブジェクトのプロトタイプを返します。 <BR>このメソッドは、指定されたオブジェクトのプロトタイプを返します。 <BR>String オブジェクトの新しい Trim メソッド <BR>String オブジェクトには、trim()、trimLeft()、および TrimRight() メソッドが追加されました。</script>