本頁の目次 目次

15.5 String オブジェクト (String Objects)

15.5.1 関数として呼出される String コンストラクタ (The String Constructor Called as a Function)

String がコンストラクタとしてではなく関数として呼出されると、型変換を行う。

15.5.1.1 String ( [ value ] )

ToString(value) で算出される (String オブジェクトではなく) 文字列値 を返す。 value が供給されないならば、空文字列 "" が返される。

15.5.2 String コンストラクタ (The String Constructor)

new 式の一部として呼出される String は、コンストラクタである: 新規にオブジェクトを生成し、初期化する。

15.5.2.1 new String ( [ value ] )

新規に構築されたオブジェクトの [[Prototype]] プロパティは、 String.prototype (セクション 15.5.3.1) の初期値である、オリジナルの String プロトタイプオブジェクトに設定される。

新規に構築されたオブジェクトの [[Class]] プロパティは、 "String" に設定される。

新規に構築されたオブジェクトの [[Value]] プロパティは、 ToString(value) に設定され、 value が供給されないければ空文字列に設定される。

15.5.3 String コンストラクタ のプロパティ (Properties of the String Constructor)

String コンストラクタの内部 [[Prototype]] プロパティの値は、 Function プロトタイプオブジェクト (セクション 15.3.4) である。

内部プロパティと length プロパティ (値は 1) の他に、 String コンストラクタは次のプロパティを持つ:

15.5.3.1 String.prototype

String.prototype の初期値は String プロトタイプオブジェクト (セクション 15.5.4) である。

このプロパティは属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.5.3.2 String.fromCharCode ( [ char0 [ , char1 [ , ... ] ] ] )

引数の数と同数で構成される文字列値を返す。各引数は、左から右へ、第 1 引数が第 1 文字目を指定、というように、結果文字列の 1 文字を指定する。引数は、演算 ToUint16 (セクション 9.7) の適用し、結果の 16 ビット整数を文字のコードポイント値とみなし、文字に変換される。 引数が供給されないならば、結果は空文字列である。

fromCharCode 関数の length プロパティは 1 である。

15.5.4 String プロトタイプオブジェクトのプロパティ (Properties of the String Prototype Object)

String プロトタイプオブジェクトは、値が空文字列である String オブジェクト ([[Class]] が "String") それ自身である。

String プロトタイプオブジェクトの内部 [[Prototype]] プロパティの値は、 Object プロトタイプオブジェクト (セクション 15.2.3.1) である。

15.5.4.1 String.prototype.constructor

String.prototype.constructor の初期値は String コンストラクタである。

15.5.4.2 String.prototype.toString ( )

この文字列値を返す。 (String オブジェクトでは、 toString メソッドは valueOf メソッドと同じものを返すということが起こることに注意。)

toString 関数は汎用的ではない; this 値が String オブジェクトでなければ、例外 TypeError を投げる。それゆえ、他の種類のオブジェクトにメソッドとして転用できない。

15.5.4.3 String.prototype.valueOf ( )

この文字列値を返す。

valueOf 関数は汎用的ではない; this 値が String オブジェクトでなければ、例外 TypeError を投げる。それゆえ、他の種類のオブジェクトにメソッドとして転用できない。

15.5.4.4 String.prototype.charAt (pos)

このオブジェクトから文字列に変換された結果文字列内の位置 pos の文字で構成される文字列を返す。その位置に文字がないならば、結果は空文字列である。結果は文字列値であり、 String オブジェクトではない。

pos が整数である Number 型の値ならば、 x.charAt(pos) の結果は x.substring(pos, pos+1) の結果と等しい。

charAt メソッドが 1 個の引数 pos で呼ばれると、 次のステップが取られる:

  1. ToString を呼出し、引数に this 値を与える。
  2. ToInteger(pos) を呼出す。
  3. Result(1) の文字数を算出する。
  4. Result(2) が 0 未満、または Result(3) 以上ならば、空文字列を返す。
  5. Result(1) からの 1 文字、 すなわち Result(1) の第 1 (最左) 文字を位置 0, 次を位置 1, と考え、位置 Result(2) の文字で構成される、長さ 1 の文字列を返す。

NOTE charAt 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.5 String.prototype.charCodeAt (pos)

このオブジェクトを文字列へ変換した結果文字列の位置 pos の文字のコードポイント値をあらわす数 (0 以上 216 未満の整数) を返す。その位置に文字が存在しないならば、結果は NaN である。

charCodeAt メソッドが 1 個の引数 pos で呼出されるとき、次のステップが取られる:

  1. ToString を呼出し、引数に this 値を与える。
  2. ToInteger(pos) を呼出す。
  3. Result(1) の文字をを算出する。
  4. Result(2) が 0 未満、または Result(3) 以上ならば、 NaN を返す。
  5. Result(1) の最初の (最左) 文字を位置 0、 次を位置 1 として、文字列 Result(1) の位置 Result(2) の文字のコードポイント値である Number 型の値を返す。

NOTE charCodeAt 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.6 String.prototype.concat ( [ string1 [ , string2 [ , ... ] ] ] )

concat メソッドが 0 個以上の引数 string1, string2, etc. で呼出されると、 string1, string2, etc. のそれぞれ (各引数は文字列に変換される) の文字が続く (文字列に変換された) このオブジェクトの文字で構成される文字列を返す。 結果は文字列値であり、 String オブジェクトではない。 次のステップが取られる:

  1. ToString を呼出し、引数に this 値を与える。
  2. R を Result(1) とする。
  3. 引数リストから次の引数を取得する; これ以上引数がないならば、 ステップ 7 へ。
  4. ToString(Result(3)) を呼出す。
  5. R を 文字 Result(4) の続く、前の R の値内の文字で構成される文字列値とする。
  6. ステップ 3 へ。
  7. R を返す。

concat メソッドの length プロパティは 1 である。

NOTE concat 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.7 String.prototype.indexOf (searchString, position)

searchString が、このオブジェクトの文字列への変換結果の部分文字列として position と同じかそれ以上の 1 個以上の位置で出現するならば、その position の最小のインデックスが返される; そうでなければ、 -1 が返される。 position が undefined ならば、 0 が想定され、文字列全域を検索する。

indexOf メソッドは 2 個の引数 searchStringposition をとり、次のステップを実行する:

  1. ToString を呼出し、引数に this 値を与える。
  2. ToString(searchString) を呼出す。
  3. ToInteger(position) を呼出す。 (position が undefined ならば、このステップは値 0 を生成する)。
  4. Result(1) の文字数を算出する。
  5. min(max(Result(3), 0), Result(4)) を算出する。
  6. Result(2) である文字列の文字数を算出する。
  7. k+Result(6) が Result(4) より大きくなく、かつ Result(6) より小さい全ての負でない整数 j に対して Result(1) の位置 k+j の文字が Result(2) の位置 j の文字と同じであるような Result(5) より小さくない最小の可能な整数 k を算出する; そのような整数 k が存在しないならば、値 -1 を算出する。
  8. Result(7) を返す。

indexOf メソッドの length プロパティは 1 である。

NOTE indexOf 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.8 String.prototype.lastIndexOf (searchString, position)

searchString が、このオブジェクトの文字列への変換結果の部分文字列として position と同じかそれ以上の 1 個以上の位置で出現するならば、その position の最大のインデックスが返される; そうでなければ、 -1 が返される。 position が undefined ならば、文字列値の長さが想定され、文字列全域を検索する。

lastIndexOf メソッドは 2 個の引数 searchStringposition をとり、次のステップを実行する:

  1. ToString を呼出し、引数に this 値を与える。
  2. ToString(searchString) を呼出す。
  3. ToNumber(position) を呼出す。 (position が undefined ならば、このステップは値 NaN を生成する)。
  4. Result(3) が NaN ならば、 +∞ を用いる; そうでなければ、 ToInteger(Result(3)) を呼出す。
  5. Result(1) の文字数を算出する。
  6. min(max(Result(4), 0), Result(5)) を算出する。
  7. Result(2) である文字列の文字数を算出する。
  8. k+Result(7) が Result(5) より大きくなく、かつ Result(7) より小さい全ての負でない整数 j に対して Result(1) の位置 k+j の文字がResult(2) の位置 j の文字と同じであるような、 Result(6) より大きくない最大の負でない整数 k を算出する; そのような整数 k が存在しないならば、値 -1 を算出する。
  9. Result(8) を返す。

lastIndexOf メソッドの length プロパティは 1 である。

NOTE lastIndexOf 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.9 String.prototype.localeCompare (that)

localeCompare メソッドが 1 個の引数 that で呼出されるとき、このオブジェクト (文字列に変換される) と that (文字列に変換される) のロケールに反応する文字列比較の結果を表す NaN 以外の数を返す。 2 個の文字列が実装が定義する方法で比較される。結果は、システムのデフォルトのロケールが規定する並び順に文字列を並べることを意図され、this が that よりも前に来るか、同じか、後にくるかによって、それぞれ負、0、正になる。

localeCompare メソッドを 2 個の引数 thisthat をとると関数と考えるならば、全文字列セットにおける矛盾のない比較関数 (セクション 15.4.4.11 で定義される) である。さらに、 Unicode 標準によって規準的に等価 (canonically equivalent) と考えられる 2 個の文字列を比較するとき、 localeCompare は 0 または -0 を返す。

実際の戻り値は、結果の値の追加情報の符号化を実装者に許可することを実装定義に残されるが、この関数は文字列の全てを全体的な並びを定義することを要求され、 Unicode 標準によって規準的に等価 (canonically equivalent) と考えられる 2 個の文字列を比較するとき、 0 を返す。

NOTE localeCompare メソッド自身を直接 Array.prototype.sort の引数にするのは、後者は 2 個の引数を要求するので適切ではない。

NOTE この関数は、ホスト環境から ECMAScript 環境に対して言語に反応する比較機能が可能になっていることを当てにして、ホスト環境の現在のロケールの規則に従った比較を意図される。この関数が Unicode 標準に従って規準的に等価 (canonically equivalent) である文字列を同一として扱うことが強く推奨される (言い換えると、双方の文字列をまず標準化形式 C または D に変換したかのように比較する)。この関数はまた Unicode 互換の等価性また分解を信頼しないことを推奨される。

全く言語に反応しない比較がホスト環境から可能ならば、この関数はビット比較を行ってよい。

NOTE localeCompare 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

NOTE この関数の第二パラメータは、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨する。

15.5.4.10 String.prototype.match (regexp)

regexp がその [[Class]] プロパティが "RegExp" であるオブジェクトでないならば、それは式 new RegExp(regexp) の結果に置換される。 string を this 値の文字列への変換結果とする。次の一つを行う:

  • regexp.global が false ならば: regexp の prototype.exec.RegExp (セクション 15.10.6.2 参照) 呼出して、パラメータとして string を渡し、取得される結果を返す。
  • regexp.global が true ならば: regexp.lastIndex プロパティを 0 に設定し、マッチするまで RegExp.prototype.exec を繰返し呼出す。空文字列でマッチする (つまり regexp.lastIndex の値が無変更のまま) ならば、 regexp.lastIndex を 1 増分する。 n をマッチした数とする。返される値は、 length プロパティを n に設定され、プロパティ 0 から n-1 までがマッチする RegExp.prototype.exec 呼出しの全ての結果の最初の要素に該当する配列である。

NOTE match 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.11 String.prototype.replace (searchValue, replaceValue)

this 値を文字列に変換した結果を string とする。

searchValue が正規表現 ([[Class]] プロパティが "RegExp" であるオブジェクト) ならば、以下をおこなう: searchValue.global が false ならば、正規表現 searchValue のマッチの最初に関して string を検索する。 searchValue.global が true ならば、正規表現 searchValue のマッチの全てに関して string を検索する。 検索は searchValue.lastIndex の更新を含め String.prototype.match と同様の方法で行う。 msearchValue 内の残りの捕捉括弧の数とする(NCapturingParens がセクション 15.10.2.1 で定義される)。

searchValue が正規表現でないならば、 searchString を ToString(searchValue) として、 searchString の最初の発生に関して string を検索する。 m を 0 とする。

replaceValue が関数ならば、マッチした各部分文字列ごとにその関数を呼出し、次の m + 3 個の引数を渡す。引数 1 はマッチした部分文字列である。 searchValue が正規表現ならば、続く m 個の引数は MatchResult (セクション 15.10.2.1 参照) 内の捕捉全てである。 引数 m + 2 は string 内部でマッチが発生した場所のオフセット、引数 m + 3 は string である。結果は、マッチした部分文字列のそれぞれ該当する関数呼出しの戻り値を必要に応じて文字列に変換して、オリジナルの入力を置換して派生する文字列値となる。

そうでなければ、 newstring を replaceValue を文字列に変換した結果とする。結果は、マッチした部分文字列のそれぞれを、次の表に規定される置換テキストで newstring 内の文字を置換した newstring から派生する文字列によってオリジナルの入力を置換して派生する文字列値となる。これら $ 置換は左から右へと行われ、そして、一旦そのような置換が行われれば、新しい置換テキストは更なる置換の主体にはならない。たとえば、 "$1,$2".replace(/(\$(\d))/g, "$$1-$1$2") は "$1-$11,$1-$22" を返す。 newstring 内で 下のどの形式にもマッチしない $ は、そのまま残される。

Characters Replacement text
$$ $
$& マッチした部分文字列
$` マッチした部分文字列に先行する文字列の部分。
$' マッチした部分文字列に後続する文字列の部分。
$n n を 1 桁の数字 1-9 、かつ $n に10進数が続かないものとして、 n 番目の捕捉。 n≤m かつ n 番目の捕捉が undefined ならば、代わりに空文字列を使用する。 n>m ならば、 結果は実装定義である。
$nn nn を 2 桁の数字 01-99 として、 nn 番目の捕捉。 nn≤m かつ nn 番目の補足が undefined ならば、代わりに空文字列を使用する。 nn>m ならば、 結果は実装定義である。

NOTE replace 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.12 String.prototype.search (regexp)

regexp がその [[Class]] プロパティが "RegExp" であるオブジェクトでないならば、それは式 new RegExp(regexp) の結果に置換される。 string を this 値の文字列への変換結果とする。

値 string は、正規表現パターン regexp の発生に対してその開始から検索される。結果はパターンマッチを行う string 内部のオフセットを示す数値となり、またマッチしないならば -1 となる。

NOTE このメソッドは regexp の lastIndex プロパティと global プロパティを無視する。 regexp の lastIndex プロパティはそのまま変更されない。

NOTE search 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.13 String.prototype.slice (start, end)

slice メソッドは 2 個の引数 startend をとり、このオブジェクトの文字列への変換結果の、位置 start の文字から開始して位置 end の前の文字までを含む部分文字列を返す (または文字列の末尾までなら end は undefined である)。 start が 負 ならば、 sourceLength を文字列の長さとして (sourceLength+start) として扱われる。 end が 負 ならば、 sourceLength を文字列の長さとして (sourceLength+end) として扱われる。結果は文字列値となり、 String オブジェクトにはならない。次のステップが取られる:

  1. ToString を呼出し、引数に this 値を与える。
  2. Result(1) の文字数を算出する。
  3. ToInteger(start) を呼出す。
  4. end が undefined ならば、 Result(2) を使用する; そうでなければ ToInteger(end) を使用する。
  5. Result(3) が 負 ならば、 max(Result(2)+Result(3),0) を使用する; そうでなければ min(Result(3),Result(2)) を使用する。
  6. Result(4) が 負 ならば、 max(Result(2)+Result(4),0) を使用する; そうでなければ min(Result(4),Result(2)) を使用する。
  7. max(Result(6)-Result(5),0) を算出する。
  8. Result(1) から、位置 Result(5) の文字で開始する Result(7) 個の連続する文字で構成される文字列を返す。

slice メソッドの length プロパティは 2 である。

NOTE slice 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.14 String.prototype.split (separator, limit)

このオブジェクトを文字列に変換した結果の部分文字列が蓄積されている Array オブジェクトを返す。部分文字列は、 separator の出現の左から右への検索で決定される; これらの出現は返される配列内の部分文字列の一部にはならないが、文字列値の分割を提供する。 separator の値は任意の長さの文字列、または RegExp オブジェクト (つまり [[Class]] プロパティが "RegExp" であるオブジェクト; セクション 15.10 参照) でもよい。

separator の値は空文字列、空の正規表現、空文字列にマッチする正規表現でもよい。この場合、 separator は入力文字列の先頭または末尾の空部分文字列にマッチせず、また前の separator マッチの末尾の空部分文字列にもマッチしない。 (例えば、 separator が空文字列ならば、文字列は不可分の文字に分割される; 結果配列の長さと文字列の長さは等しく、各部分文字列は 1 文字だけを含む。) separator が正規表現ならば、バックトラッキングでその位置の空でない部分文字列マッチが発生するとしても、この文字列の与えられた位置の最初のマッチのみ考慮する。 (例えば、 "ab".split(/a*?/) が ["a","b"] と評価される一方、 "ab".split(/a*/) は ["","b"] と評価される。)

このオブジェクトが空文字列ならば(または空文字列に変換されるならば)、結果は separator が空文字列にマッチ可能かどうかに依存する。可能ならば、結果は要素をもたない配列である。不可能ならば、結果は空文字である要素を 1 個持つ配列となる。

separator が捕捉括弧を含む正規表現ならば、 separator が捕捉括弧の結果 (結果 undefined を含む) にマッチするごとに、出力配列内に継ぎ足される。 (例えば、 "A<B>bold</B>and<CODE>coded</CODE>".split(/<(\/)?([^<>]+)>/) は配列 ["A", undefined, "B", "bold", "/", "B", "and", undefined, "CODE", "coded", "/", "CODE", ""] に評価される。)

separator が undefined ならば、結果の配列は this 値 (文字列に変換された) である 1 個の文字列のみで構成される。 limit が undefined でないならば、出力配列は limit 個以下の要素になるように切り詰められる。

split が呼出されると、次のステップが取られる:

  1. S = ToString(this) とする。
  2. A を式 new Array() によるものと同様の新しい配列とする。
  3. limit が undefined ならば、 lim = 232-1 とする; そうでなければ lim = ToUint32(limit) とする。
  4. s を の文字数 S とする。
  5. p = 0 とする。
  6. separator が RegExp オブジェクト ([[Class]] が "RegExp") ならば、 R = separator とする; そうでなければ、 R = ToString(separator) とする。
  7. lim = 0 ならば、 A を返す。
  8. separator が undefined ならば、 ステップ 33 へ。
  9. s = 0 ならば、 ステップ 31 へ。
  10. q = p とする。
  11. q = s ならば、 ステップ 28 へ。
  12. SplitMatch(R, S, q) を呼出し、 z をその MatchResult result とする。
  13. z が failure ならば、 ステップ 26 へ。
  14. z は State のはずである。 ez の endIndex とし、 cap を z の捕捉配列とする。
  15. e = p ならば、 ステップ 26 へ。
  16. T を、 S の位置 p から q の前までの文字で構成される部分文字列に等しい文字列値とする。
  17. A の [[Put]] メソッドを、引数 A.length, T で呼出す。
  18. A.length = lim ならば、 A を返す。
  19. p = e とする。
  20. i = 0 とする。
  21. i が cap 内の要素数と等しいならば、 ステップ 10 へ。
  22. i = i+1 とする。
  23. A の [[Put]] メソッドを、引数 A.length, cap[i] で呼出す。
  24. A.length = lim ならば、 A を返す。
  25. ステップ 21 へ。
  26. q = q+1 とする。
  27. ステップ 11 へ。
  28. T を、 S の位置 p から s の前までの文字で構成される部分文字列に等しい文字列値とする。
  29. A の [[Put]] メソッドを、引数 A.length, T で呼出す。
  30. A を返す。
  31. SplitMatch(R, S, 0) を呼出し、 z をその MatchResult result とする。
  32. z が failure でないならば、 A を返す。
  33. A の [[Put]] メソッドを、引数 "0" と S で呼出す。
  34. A を返す。

内部補助関数 SplitMatch は 3 個のパラメータ、文字列 S, 整数 q, 文字列または正規表現 R をとり、次を実行して MatchResult (セクション 15.10.2.1 参照) を返す:

  1. R が RegExp オブジェクト ([[Class]] が "RegExp") ならば、 ステップ 8 へ。
  2. R は文字列でなければならない。 rR の文字数とする。
  3. sS の文字数とする。
  4. q+r > s ならば MatchResult failure を返す。
  5. S の位置 q+r の文字が R の位置 i の文字と異なるような 0 から r の前までの整数 i が存在するならば、 failure を返す。
  6. cap を captures (セクション 15.10.2.1 参照) の空の配列とする。
  7. State (q+r, cap) を返す。 (セクション 15.10.2.1 参照)
  8. R の [[Match]] メソッドを呼出し引数に Sq を与え、 MatchResult result を返す。

split メソッドの length プロパティは 2 である。

NOTE split 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

NOTE split メソッドは、 RegExp オブジェクトである separetor の separator.global の値を無視する。

15.5.4.15 String.prototype.substring (start, end)

substring メソッドは 2 個の引数 startend をとり、このオブジェクトの文字列への変換結果の、位置 start の文字から開始して位置 end の前の文字までを含む部分文字列を返す (または文字列の末尾までなら end は undefined である)。 結果は文字列値となり、 String オブジェクトにはならない。

引数が NaN または負の値のいずれかならば、 0 に置換される; 引数が文字列の長さより大きいならば、文字列の長さに置換される。

startend より大きいならば、それらは交換される。

次のステップが取られる:

  1. ToString を呼出し、引数に this 値を与える。
  2. Result(1) の文字数を算出する。
  3. ToInteger(start) を呼出す。
  4. end が undefined ならば、 Result(2) を用いる; そうでなければ ToInteger(end) を用いる。
  5. min(max(Result(3), 0), Result(2)) を算出する。
  6. min(max(Result(4), 0), Result(2)) を算出する。
  7. min(Result(5), Result(6)) を算出する。
  8. max(Result(5), Result(6)) を算出する。
  9. 長さが Result(8) と Result(7) の差であり、 Result(1) からの文字、すなわち昇順の添え字で Result(7) から Result(8)-1 までの文字を含む文字列を返す。

substring メソッドの length プロパティは 2 である。

NOTE substring 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.16 String.prototype.toLowerCase ( )

このオブジェクトが文字列でないならば、文字列に変換される。文字列内の文字は、一つ一つ小文字に変換される。結果は文字列値となり、 String オブジェクトにはならない。

文字は一つ一つ変換される。各変換の結果は、文字が Unicode 小文字 (Unicode lowercase equivalent) を持つならばそれが使われ、持たないならばオリジナルの文字である。

NOTE 結果は Unicode 文字データベース (これは UnicodeData.txt ファイルだけでなく、 Unicode 2.1.8 以降に含まれる SpecialCasings.txt ファイルも明示的に含む) 内におけるケースマッピングに従い引き出されるべきである。

NOTE toLowerCase 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.17 String.prototype.toLocaleLowerCase ( )

この関数は厳密に toLowerCase と同様に動作する。但し、結果はロケールから独立した結果ではなく、ホスト環境の現在のロケールに対して正しい結果をもたらすことが意図される。正規 Unicode 文字マッピングで言語の規則が干渉する (たとえばトルコ語のような) ごく一部の文字でのみ違いが存在する。

NOTE toLocaleLowerCase 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

NOTE この関数の第一パラメータは、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨する。

15.5.4.18 String.prototype.toUpperCase ( )

この関数は String.prototype.toLowerCase ときっちり同じように振舞う。但し、文字は Unicode 文字データベースで規定される大文字の同じ文字にマップされる。

NOTE toUpperCase と toLowerCase はともにコンテキストに反応する振る舞いを持つため、関数は非対称的である。言い換えると、 s.toUpperCase().toLowerCase() は s.toLowerCase() と等しいとは限らない。

NOTE toUpperCase 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

15.5.4.19 String.prototype.toLocaleUpperCase ( )

この関数は厳密に toUpperCase と同様に動作する。但し、結果はロケールから独立した結果ではなく、ホスト環境の現在のロケールに対して正しい結果をもたらすことが意図される。正規 Unicode 文字マッピングで言語の規則が干渉する (たとえばトルコ語のような) ごく一部の文字でのみ違いが存在する。

NOTE toLocaleUpperCase 関数は故意に汎用的である; this 値が String オブジェクトであることを要求されない。それゆえ、他の種類のオブジェクトにメソッドとして転用可能である。

NOTE この関数の第一パラメータは、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨する。

15.5.5 String インスタンスのプロパティ (Properties of String Instances)

String インスタンスは、 String プロトタイプオブジェクトからプロパティを継承し、また [[Value]] プロパティと length プロパティを持つ。

[[Value]] プロパティは、この String オブジェクトによってあらわされる文字列値である。

15.5.5.1 length

この String オブジェクトによってあらわされる String 値の文字数である。

一旦 String が生成されたら、このプロパティは変更されない。属性 { DontEnum, DontDelete, ReadOnly } である。

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI