1

Javascript には、実行できる多くの文字列操作操作があります。したがって、concat()、slice()、match() などのメソッドがあります。

私の質問は、これらすべての文字列操作メソッドが結果として新しい文字列値を返すか、またはメソッドで使用されている実際の文字列を実際に変更するいくつかのメソッドがあるかということです。

4

3 に答える 3

3

JavaScript (および他の多くの言語) の文字列は、不変オブジェクトとして実装されます。これには、いくつかの有益な特性があります。

  1. スレッドセーフであり、より具体的には、
  2. 値が変更されることを心配することなく、同じ文字列への複数の参照を安全に保持できます。

これは、元の値を変更しようとする場合、すべての文字列メソッドが新しい文字列を返さなければならないことも意味します。

于 2013-01-31T07:32:46.770 に答える
0

戻り値は元の文字列の複製です。

concat, matchつまり、 orを呼び出しsliceても元の文字列は変更されません。

ドキュメントについては、いつでもMDN リファレンスを参照できます。

しかし、ソースから引用すると

連結

2 つ以上の文字列のテキストを結合し、新しい文字列を返します。

于 2013-01-31T07:39:31.627 に答える
0

文字列は不変であり、一度作成されると、再度変更することさえできません。

月日:

C などの言語とは異なり、JavaScript の文字列は不変です。つまり、文字列が作成されると、それを変更することはできません。ただし、元の文字列に対する操作に基づいて別の文字列を作成することもできます。たとえば、元の文字列の部分文字列 (個々の文字を選択するか、String.substr() を使用) や、連結演算子を使用した 2 つの文字列の連結などです。 (+) または String.concat()。

したがって、はい。すべての文字列操作は新しい文字列を返します

于 2013-01-31T07:54:49.780 に答える