JavaScript基础(对象引用和字符串修改)

2019-06-14  本文已影响0人  吴敬悦
> var a = "qwer";
"qwer"
> a[0]
"q"
> a[0] = 'l'
"l"
> a
"qwer"

这就说明在JavaScript中不支持修改字符串,如果需要字符串的值的话,我列出两个方法:

  1. 使用JavaScript提供的方法
> c = "lkjhgf"
"lkjhgf"
> c = "1" + c.slice(1, c.length)
"1kjhgf"
  1. 先将字符串转换成数组操作,操作完成以后再转换成字符串
> c = c.split("")
["1", "k", "j", "h", "g", "f"]
> c[1] = "2"
"2"
> c.join("")
"12jhgf"

这两种方式我觉得都不好。第一种方式看似是再字符串上操作,其实是重新赋值,也就是需要重新开辟空间;第二种主要是需要反复的转换。

// 首先看对象的例子
> a = {a:"123",b:12}
{a: "123", b: 12}
> b = a
{a: "123", b: 12}
> b
{a: "123", b: 12}
> b.a = "qwe"
"qwe"
> b
{a: "qwe", b: 12}
> a
{a: "qwe", b: 12}
// 接下来测试数组
> c = [1,2,3,4,5]
(5) [1, 2, 3, 4, 5]
> d = c
(5) [1, 2, 3, 4, 5]
> d[0] = 100
100
> d
(5) [100, 2, 3, 4, 5]
> c
(5) [100, 2, 3, 4, 5]

最重要的就是这两种类型,有时候会忽略,如果你想改变现有值而原来的值不发生改变,那么需要使用深拷贝。

上一篇 下一篇

猜你喜欢

热点阅读