主な内容の要点
lengthプロパティとは
文字列(Stringオブジェクト/リテラル)の文字数を取得するためのプロパティ。
書式は文字列.length。- 内部表現と注意点
JavaScript は文字列を UTF-16 で内部的に扱っており、多くの文字は 1 コードユニット(16 ビット)で表現される。
lengthは「コードユニットの個数」を返すので、見かけ上「1 文字」に見えるものでも 2 を返すケースがある。 - サロゲートペアに関する問題
サロゲートペア (surrogate pair) とは、1 文字を 2 つのコードユニットで表す文字(たとえば絵文字など)を指す。
こうした文字を含む文字列に対してlengthを使うと、実際には「1 文字」でもlengthは 2 を返してしまう。
例:let word = "●"; console.log(word.length);→ 2 を返す場合あり。 - まとめ
lengthプロパティで文字列長を取得できるが、「文字数」として正確に数えたいときはサロゲートペアを考慮する必要がある。
文字列.lengthJavaScript
