JavaScriptのString.prototype.codePointAt()
とString.prototype.charCodeAt()
の違いは何ですか?
'A'.codePointAt(); // 65
'A'.charCodeAt(); // 65
Mozilla から:
CharCodeAt()メソッドは、指定されたインデックスのUTF-16コードユニットを表す0〜65535の整数を返します(UTF-16コードユニットは、単一のUTF-16コードユニットで表現可能なコードポイントのUnicodeコードポイントと一致しますが、また、単一のUTF-16コード単位では表現できないコードポイントのサロゲートペアの最初のコード単位でもあります(たとえば、Unicodeコードポイント> 0x10000)。コードポイント値全体が必要な場合は、codePointAt()を使用します。
charCodeAt()
はUTF-16、codePointAt()
はUnicodeです。
ToxicTeacakesの回答にいくつか追加するために、違いを理解するのに役立つ別の例を次に示します。
"????".charCodeAt(0).toString(16);//d842
"????".charCodeAt(1).toString(16);//dfb7
"????".codePointAt(0);//20bb7
"????".codePointAt(1);//dfb7
console.log("\ud842\udfb7");//????, an example of hexadecimal digits
console.log("\u20bb7\udfb7");//₻7�
console.log("\u{20bb7}");//???? an unicode code point escapes the "\ud842\udfb7"
以下 はjavascript文字列リテラルに関する情報です:
「\ uXXXX」
4桁の16進数XXXXで指定されたUnicode文字。たとえば、\ u00A9は著作権記号のUnicodeシーケンスです。「\ u {XXXXX}」
ユニコードコードポイント
エスケープ。たとえば、\ u {2F804}は、単純なUnicodeエスケープ\ uD87E\uDC04と同じです。
も参照してください msdn
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt
このURLから、違いを得ることができます。それらの機能はほとんど同じですが、戻り値と不正な引数にいくつかの違いがあります。