2016-01-08 19 views
5

私はまだJavaScriptを学習しており、キーボードからの入力を受けて練習しています。私はちょうどString.fromCodePointについて学びました、それはString.fromCharCodeがするすべてを拾うように見えます。String.fromCodePointをString.fromCharCodeと同じように使用できますか?

String.fromCodePointはブラウザやデバイスで広範な支持されており、もしそうなら、それはString.fromCharCodeが時代遅れにする、またはあなたの代わりに時々String.fromCharCodeを使用する理由があるのでしょうか?

+2

ブラウザの互換性のために見てみましょうhttp://kangax.github.io/compat-table/es6/#String.fromCodePoint – Apolo

答えて

4

fromCharCodeは時代遅れではない、まだ、それは場合だろうすべてのブラウザでサポートされます。しかしfromCharCodetwice as fastfromCodePoint

  • String.fromCodePoint() として永遠にあるためサポートされているInternet ExplorerやSafariの

  • String.fromCharCode() によってサポートされていない、あるの速さ

  • 違い倍増:

    最も一般的なUnicode値は1つの16ビット数値で表現できますが(JavaScript標準化では早めに期待されています)、fromCharCode()を使用して最も一般的な値(UCS-2値最も一般的な文字を含むUTF-16のサブセット)は、すべての有効なUnicode値(最大21ビット)を処理するために、fromCharCode()だけでは不十分です。より高いコードポイント文字は2つの(より低い値の)「サロゲート」数字を使用して単一の文字を形成するため、String.fromCodePoint()(ES6ドラフトの一部)を使用してそのようなペアを返すことができ、 。

+0

私はfromCharCodeはそのはるかに高速になり実現していません...そのスピードテストリンクを共有してくれてありがとう。今のところ、私は基本的なキーボード入力のためにfromCharCodeを使用します。 – freginold

4

String.fromCodePointは、実際にはInternet ExplorerやSafari、Chrome 41以降、Firefox 29以降ではサポートされていません。

これは古いという意味ではなく、ES2015で初めて定義された新しい方法です。
これは、ECMAScriptの第6版のすべての新機能をブラウザが実装しているため、ブラウザのサポートが時間的に改善されることを意味します。

現行のブラウザをすべてサポートする必要がある場合は、現時点では実用的ではありませんが、すべてのブラウザでこのメソッドを使用する必要がある場合はMDNにpolyfillがあります。

3

に、String.fromCharCodeは、すべてのブラウザでサポートされています。
​​

String.fromCodePointは、限られたブラウザのサポートを持っています
enter image description here

関連する問題