JS.next

JavaScriptの最新実装情報を追うブログ

型付配列に配列と同じメソッドが実装されてきている(3/22)

概要 ES5までは型付配列で配列のようなメソッドを使うことが出来ず、度々不便なこともあったが、 ES6から多くの配列と同じメソッドが使えるようになった。

Map、Setのコンストラクタが正しく実装された

概要 今までV8ではMap、Setコンストラクタの引数付きの呼び出しが正しく実装されていなかったが、この度正しく実装された。 引数にイテラブル(=@@iteratorメソッドを持つ)オブジェクトを渡すことで、それを元に初期化させることができる。

いろいろなオブジェクトに@@iteratorメソッドが実装された

概要 イテレータが期待される場面で呼ばれる@@iteratorメソッドが、様々なオブジェクトへ実装された。

イテレータについて

概要 V8でES6のイテレーション周りの実装が進んできたので、解説してみようと思う。

{Map,Set}.prototype.{values,keys,entries}が実装された

概要 Array.prototype.{values,keys,entries}と同じような要領でコレクションを列挙することができる。 列挙される順序はコレクションに加えた順序と同じであることが保証される。

for文でのlet変数が毎ループ新スコープを持つようになった

概要 かつてはfor文初期化句で宣言された変数は、for文の直前で宣言されたように振舞っていたが、各ループでスコープを引きづらないように仕様が変更され、V8も追従した。

ES6では何が同値とみなされるか まとめ

概要 ES6で導入されるObject.isとCollectionのkeyにおいて、何が「同じ」と見なされるのかをまとめてみる。

Array.prototype.fillが実装された

概要 配列の指定した範囲を、指定した値で満たすことができる、破壊的メソッドである。

{Map,Set}.prototype.forEachが実装された

概要 Array.prototype.forEachと同じような要領でコレクションを列挙することができる。 列挙される順序はコレクションに加えた順序と同じであることが保証される。

PromisesとWeak Collectionsがデフォルトで有効になった

概要 ES6で導入される機能である、Promise、WeakMap、WeakSetコンストラクタがデフォルトで有効になった。

Object.observeについて

説明 Object.observeとは、ES7で導入予定の、オブジェクトの変更を監視するためのAPIである。 仕様も安定し、この度V8でデフォルトで有効になったので紹介してみたいと思う。

Symbolについて

概要 ES6ではUndefined、Null、Boolean、Number、String、Objectの6つの型に加えて、新しい型Symbolが導入された。 シンボルはプリミティブ型で、文字列のようにプロパティのキーとして使える特徴を持つ。

String.prototype.normalizeが実装された

実装されたメソッド String.prototype.normalize(form = "NFC") form(初期値:"NFC")の形式で正規化した文字列を返す

MapとSetが+0と-0を区別しなくなった

概要 MapやSetとは、キーにあらゆる型のあらゆる値を使えるコレクションである。 かつてはキーとして+0と-0を区別していたのだが、区別しないことになり、V8の実装も追従した。

String.prototype.{startsWith,endsWith,contains} が正規表現を受け付けなくなった

概要 文字列str1が文字列str2で始まっているかどうかは『str1.startsWith(str2)』、 文字列str1が文字列str2で終わっているかどうかは『str1.endsWith(str2)』、 文字列str1が文字列str2を含んでいるかどうかは 『str1.contains(str2)』で得ることができる。…

Object.setPrototypeOfが実装された

実装されたメソッド Object.setPrototypeOf(target, proto) targetオブジェクトのプロトタイプをprotoに設定する 返り値はtargetで、protoはオブジェクトまたはnullである必要がある

Object.getOwnPropertySymbolsが実装された

実装されたメソッド Object.getOwnPropertySymbols(obj) オブジェクトが持つ全てのシンボルキーの配列を返す (文字列キーにおけるgetOwnPropertyNamesのシンボルキー版) シンボルに付いてはコチラの記事を参照

Numberコンストラクタに新しい関数と定数が実装された

概要 NumberコンストラクタにES6で追加された3個の定数と6個の関数が実装された。

Promiseが実装された

概要 Promiseとは非同期処理を上手く扱う為のAPIであり、パターンである。 非同期の処理の完了後に続けて処理を行いたいとき、よくコールバックパターンが使われるが、処理が連続するとコールバック地獄と言われる分かりづらいソースコードになってしまう。 …

Object.observeに多数の変更が入った

概要 Object.observeとは、オブジェクトへの操作を監視し、プロパティの変更情報をコールバックで得るための、ES7で導入予定のAPIである。 V8ではこれをいち早くサポートしていたが、最近仕様に多数の変更・追加・改善がなされ追従した。 従来の書き方だと動…

Mathオブジェクトに新しい関数が実装された

概要 ES6で新しく入った16個(?)のMath関数の実装が始まった。 (ただしMath.imulは暫く前から実装済み)

ArrayBuffer.isViewが実装された

実装されたメソッド ArrayBuffer.isView 指定したオブジェクトが、TypedArray(型付配列)やDataViewかの真偽値を返す より正確には…… 『ViewedArrayBuffer』内部プロパティを持っているかどうか これはArrayBufferへのインターフェイスを提供してくれるような…

ArrayIteratorがインデックスを数値型で返すようになった

変更点 タイトルの通り 影響 一部のArrayIteratorを返すメソッド Array.prototype.keys Array.prototype.entries

配列操作のメソッドが2つ実装された

実装されたメソッド Array.prototype.find 指定した関数に、配列の要素を順に与えて呼び出し、その関数がtrueを返したときの要素を返す Array.prototype.findIndex 同じく、要素のインデックスを返す 要は指定した条件に合う配列の要素や、要素のインデック…

文字列操作のメソッドが4つ実装された

実装されたメソッド String.prototype.repeat 文字列を指定した回数だけ繰り返した、新しい文字列を返す String.prototype.startsWith 文字列が指定された文字列で開始されているかの真偽値を返す String.prototype.endsWith 文字列の終端に指定された文字列…

WeakSetが実装された

感想 Map、WeakMap、Setに加えてWeakSetが実装された。これらについては筆者も詳しくないし、まだいくつかの付随機能が未実装なので、それらが実装された時に改めて採り上げたいと思う。

新8進数と2進数の数値リテラルが実装された

このブログについて

初めに プログラミング上達において大切なことは、まずどんな機能があるか知ることだと思います。 このブログは、皆さんにJSの使えそうな機能を少しでも早く、多く伝えようと作りました。 とは言っても、筆者はただの新しいこと好きの未熟なJSerです。 記事…