2017-06-09 5 views
0

私が聞いたように、StringはJavaScriptでは不変で、スプライスメソッドは元のStringをどのように変更しますか?Stringがjavascriptで不変の場合、どのようにスプライスメソッドが元のStringを変更しますか?

私が知っているように、 var name = 'Alto'; // 'alto'でグローバル空間メモリに新しいオブジェクトを作成し、名前の参照に割り当てます。

name = 'swift'; //グローバル空間メモリに新しいオブジェクトを作成し、名前の参照に 'swift'を割り当てます。 ( 'Alto'文字列オブジェクトは可能な限りガベージコレクタに移動されます)。

var newName = name.slice(0,2); //ここで、 'swift'から 'sw'をスプライシングすると、グローバルスペースに新しいオブジェクトが作成され、newNameに割り当てられます。文字列は不変なので、名前は「迅速」になります。

var newName1 = name.splice(0,2); // swift(元の文字列)から 'sw'を切り取り、newNameに割り当てます。今は名前が 'ift'になります。どのようにStringは不変ですか?

誰でもスプライスの背後にあるプロセスを説明できますか?

+0

不変ですか?それは定数のように変更することができないことを意味しますか? – Acidic

+2

'.splice()'は 'String.prototype'のメソッドではありません – guest271314

+2

文字列に' splice'メソッドはありません。 'name'のスライスを取っても' name'は変更されません。おそらく、あなたは[MCVE] – pvg

答えて

0

これらは変更できません。文字列内の文字をvar myString = "abbdef"のように変更することはできません。 myString [2] = 'c' trimなどの文字列操作メソッドは、新しい文字列を返します。

関連する問題