2017-06-09 20 views
0

據我所知,字符串在JavaScript中是不可變的,那麼如何拼接方法改變原來的字符串?如果String在JavaScript中是不可變的,那麼splice如何改變原來的String?

據我所知 var name = 'Alto'; //它將在全局空間內存中創建一個新的對象,並使用'alto'並分配給名稱引用。

name = 'swift'; //它將在全局空間內存中創建一個新對象,並將'swift'分配給名稱引用。 (儘可能將'Alto'字符串對象移動到垃圾回收器中)。

var newName = name.slice(0,2); //這裏將'sw'與'swift'拼接在一起,在全局空間中創建一個新對象並賦給newName。由於字符串是不可變的,因此名稱將具有'快速'。

var newName1 = name.splice(0,2); //這裏將'sw'從'swift'(原始字符串)剪下並賦給newName。現在名字會有'ift'。那麼String如何是不可變的?

任何人都可以解釋拼接背後的過程嗎?

+0

不可變?這是否意味着它不能像常量一樣改變? – Acidic

+2

'.splice()'不是'String.prototype'的方法 – guest271314

+2

字符串沒有'splice'方法。採用'name'切片不會改變'name'。也許你可以寫一個[MCVE] – pvg

回答

0

它們是不可變的。你不能用類似var myString =「abbdef」的方式改變字符串中的字符。 myString [2] ='c'。諸如trim,slice之類的字符串操作方法返回新的字符串。

相關問題