求解,数组赋值问题
发布于 5 年前 作者 linjie 10176 次浏览 来自 问答
var aa = 'aa'
var bb = aa
aa = 'cc'
console.log(bb)
输出 ['aa']
//--------------------
 
var a = ['a']
var b = a
a[0] = 'c'

console.log(b)

输出 'c'

为啥同样的写法数组的值会被赋到 b 上面呢?

代码片段

https://developers.weixin.qq.com/s/44SxEAmi7e9X

3 回复

一个是aa变量,一个是a[0],怎么是同样写法,你把每个地方的类型打出来看看区别

数组是引用类型,指向的是内存中的地址,字符串类型相当于new String(),新开了一个内存空间,所以,一个会根据指针改变位置,一个是新开辟的内存地址

? 没人吗? 算不算是BUG吖?

回到顶部