我听说,字符串在JavaScript中是不可变的,那么拼接方法如何改变原来的字符串呢?
据我所知,var name = 'Alto';//它将在全局空间内存中创建一个带有'alto‘的新对象,并分配给名称引用。
name = 'swift'; //它将在全局空间内存中创建一个新对象,并将'swift‘赋值给名称引用。('Alto‘字符串对象将尽可能移动到垃圾回收器)。
var newName = name.slice(0,2);//这里拼接来自“swift”的“sw”,在全局空间中创建一个新对象并分配给newName。名称将具有'swift‘,因为字符串是不可变的。
var newName1 = name.splice(0,2);//此处将'sw‘从’swift‘(原始字符串)中剪切出来并分配给newName。现在名称将有'ift‘。那么String是如何成为不可变的呢?
有人能解释一下splice背后的过程吗?
发布于 2017-06-09 13:37:18
它们是不可变的。您不能使用var myString = "abbdef";myString2 = 'c‘来更改字符串中的字符。字符串操作方法,如trim、slice,返回新字符串。
https://stackoverflow.com/questions/44449852
复制相似问题