js中arr的赋值不影响原数组,赋值和引用的区别

JavaScript068

js中arr的赋值不影响原数组,赋值和引用的区别,第1张

你说的是值类型和引用类型。

值类型都有一个独立的内存区域保存自己的值。

引用类型指向的是内存中的地址。

var ary1=[] // 第一次定义,分配内存a

var ary2=ary1// ary2 指向了内存a

ary2[0] =123// 其实就是改变了ary1[0]

值类型:

var a =1,b=a// 这时 b=1

b=3 // b=3,a还是1,因为独立的内存区域给B

需要准备的材料分别有:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html,编写问题基础代码。

2、在index.html中的<script>标签,输入js代码:$('body').append($('#shuz').val())。

3、浏览器运行index.html页面,此时shuz数组中的值被成功用js取出打印了出来。

当然是0,因为你的数组内容是空的,一个元素都没有

数组的话

arr['h']

=

123;//这种赋值方法是不支持的,在JS中所谓的关联数组,其实是一个对象,模拟关联数组的

var

arr

=

{},//创建一个对象

len

=

0

arr["h"]

=

"hh"

arr["i"]

=

"gaj"

for(

var

i

in

arr)

{

len++

}

alert(len)

//只能这么做的

上面的做法相当于:

var

arr

=

{

'h'

:

'hh',

'i'

:

'gaj'

}