JS.next

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

Object.observeについて

概要 Object.observeとは、オブジェクトの変更を監視するためのAPIであった。 ES2015,2016の候補として挙げられており、V8でデフォルトで有効にされるまでに至っていたが、 実装コストがかかる上、世のニーズとそれほど合っていないということで結局廃止され…

Symbolについて

概要 ES2015では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,includes} が正規表現を受け付けなくなった

概要 これらは文字列を期待するメソッドだが、splitの用に正規表現も受け付けると思われて解決しづらいバグの元になってしまわないように、正規表現オブジェクトが渡された時は専用のエラーを出すことになり、V8の実装も追従した。

Object.setPrototypeOfが実装された

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

Object.getOwnPropertySymbolsが実装された

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

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

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

Promiseについて

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

新しい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 文字列の終端に指定された文字列…

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

このブログについて

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