Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
length データプロパティは、String オブジェクトの文字列長を UTF-16 コード単位の数で表します。
非負の整数です。
| 書込可能 | 不可 |
| 列挙可能 | 不可 |
| 設定可能 | 不可 |
このプロパティは、文字列内のコード単位の数を返します。JavaScript では UTF-16 エンコーディングを使用しており、すべての Unicode 文字が 1 つまたは 2 つのコード単位にエンコードされるため、length で返される値は文字列の実際の Unicode 文字数に一致しない可能性があります。よく使われるラテン、キリル、有名な漢字などはこのような問題にはなりませんが、絵文字、数学記号、難しい漢字などのような特定の文字体系では、length で返される値が文字列の実際の文字数と一致しなくなる可能性があるので、コード単位数と文字数の違いを考慮する必要があるかもしれません。
言語の仕様書では、文字列の最大長が 253 - 1 要素と制定されており、これは正確に表せる整数の上限となっています。しかし、この長さの文字列は 16,384TiB のストレージを必要とし、これは一般的な機器のメモリーに収まらないため、実装上はもっと低い閾値を設けている傾向があり、文字列の長さを便宜上 32 ビット整数に収めています。
他のエンコーディング (UTF-8 のファイルや blob) の巨大な文字列を扱っている場合は、データを JavaScript の文字列にロードすると、エンコーディングは常に UTF-16 になることに注意してください。文字列のサイズはもとのファイルのサイズと異なる可能性があります。
空文字列の場合、length は 0 になります。
静的プロパティの String.length は文字列の長さとは関係なく、 String 関数のアリティ(簡単に言えば、それが持つ形式的な引数の数)であり、1 です。
length は文字数ではなくコード単位で数えるため、文字数を取得したい場合は、まず文字列をイテレーターで分割し、文字ごとに反復処理をしてください。
書記素単位でカウントしたい場合は、 Intl.Segmenter を使用してください。まず、分割したい文字列を segment() メソッドに渡し、返された Segments オブジェクトを反復処理をして長さを取得してください。
文字列はプリミティブであるため、文字列の length プロパティに値を代入しても目に見える効果はなく、厳格モードでは例外が発生します。
| ECMAScript® 2027 Language Specification # sec-properties-of-string-instances-length |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。