Stringのslice、replace、toUpperCase、repeatメソッドは元の文字列を変更しますか?

------JavaScript には String オブジェクトのネイティブ プロパティとメソッドが多数あり、非常に便利で実用的です。例: length プロパティは文字列の全長を取得し、IndexOf() は指定された文字を見つけて返します。位置インデックスなど
-------文字列の外観を変更して新しい文字列を返すメソッドもいくつかありますが、それらの一連の操作によって元の文字列のスタイルが変更されるのでしょうか?
------一緒に見てみましょう!

  1. まず、文字列インターセプト メソッドのスライス、サブストラ、およびサブストリングをテストします。
var str = "这里是一个字符串";
var newStr = str.slice(5),
    newStr2 = str.substring(3,1),
    newStr3 = str.substr(1,3);

console.log("原字符串---",str);
console.log("slice截取的字符串---",newStr);
console.log("substring截取的字符串---",newStr2);
console.log("substr截取的字符串---",newStr3);

出力結果
元の文字列 - ここに
文字列スライスによってインターセプトされた文字列があります - ここに
文字列によってインターセプトされた文字列 substring - ここに
substr によってインターセプトされた文字列があります - ここに

このことから、文字列インターセプト メソッドは元の文字列を変更せず、新しい文字列を返すだけであることがわかります。

  1. 次に、 replace メソッドを見てみましょう
var str = "这里是一个字符串";
var newStr = str.replace("字符串","replace");

console.log("原字符串---",str);
console.log("replace修改后的字符串---",newStr);

出力結果
元の文字列 - ここは置換文字列です
変更された文字列 - ここは置換文字列です

このことから、文字列の replace メソッドは元の文字列を変更せず、変更された新しい文字列を返すだけであることがわかります。

  1. 前の 2 つのメソッドは元の文字列には影響しませんが、toUpperCase と toLowerCase はどうなるでしょうか?
var demo = "Hello,world";
var NEW = demo.toUpperCase();
var new = demo.toLowerCase();

console.log(NEW); // 输出:HELLO,WORLD
console.log(new); // 输出:hello,world
console.log(demo);// 输出:Hello,world

ご覧のとおり、toUpperCase() メソッドを使用すると、「hello,world」は「HELLO,WORLD」になります。元の文字列が変更された場合、この時点ではデモはすべて大文字になるはずですが、それでも元の定義された文字列のままであり、元の文字列が影響を受けないことを示すには十分です。同様に、toLowerCase() は元の文字列を変更しません。

  1. 最後に、ES6 の新しいメソッドrepeat、padStartとpadEndのいくつかを見てみましょう。
        var str = "s";
        var newStr = str.repeat(10);

        console.log("原字符串---",str);
        console.log("repeat修改后的字符串---",newStr);

出力結果は元の文字列を変更しません
元の文字列 - s
の繰り返し 変更後の文字列 - ssssssssss

var str = "s";
var newStr = str.padStart(3,"pa");

console.log("原字符串---",str);
console.log("padStart修改后的字符串---",newStr);

出力結果の
元の文字列 - s
PadStart 変更後の文字列 - pas

要約する

上記の小さなケースから、String の組み込みメソッドが

  1. スライス()、サブストラ()、サブストリング()
  2. 交換する()
  3. toUpperCase() と toLowerCase()
  4. ES6 で追加されたいくつかの新しいメソッドrepeat()、padStart()、およびpadEnd()

元の文字列は変更されません。

おすすめ

転載: blog.csdn.net/m0_56026872/article/details/118436376