您的位置:首页 > Web前端 > JavaScript

JavaScript中,数组存储单一变量,对象,数组时的区别

2016-03-29 15:58 405 查看
无意间看到JS的数组可以把对象,数组填充进一个新的数组中。然后便产生了一个疑问:填充进去的数组和对象的原值被改变时,填充进去的是否也会改变?

经测试发现:

数组中填充的为单一变量时,仅仅为赋值操作

数组中填充的为另一数组或者是一个对象时,对被填充的数组操作和对原数组或对象操作,结果都将会改变双方的值

测试代码如下~

<html>

<head>

<meta charset="utf-8" />
<title>Example </title>

</head>

<body>
<h1>Test!!!</h1>
<script>

///js数组可以存储变量的值
document.write("<p>本测试为测试出,在数组中存储的变量,当原变量的值改变时,数组中的值是否会改变~</p>");
var ktemp="one";///单一变量

function createObj(name,age){
var obj=new Object();
obj.name = name;
obj.age = age;
return obj;
}

var ktemp2=createObj("hh",20); //对象

var ktemp3=Array(3); //数组
ktemp3[0] = 0;
ktemp3[1] = 1;
ktemp3[2] = 2;

var ktt=Array();
ktt[0] = ktemp;
ktt[1] = ktemp2;
ktt[2] = ktemp3;

ktemp="two";
ktemp2.name = "HH";
ktemp3[0] = -1;

function show1(str1,str2){
document.write("<p>" + str1 + ":" + str2 + "</p>");
}

show1(ktt[0],ktemp);//单一变量
show1(ktt[1].name,ktemp2.name);//对象原值改变
show1(ktt[2][0],ktemp3[0]);//数组原值改变

ktt[0] = "three";
show1(ktt[0],ktemp);//单一变量

ktt[1].name="end!";
show1(ktt[1].name,ktemp2.name);///新数组中对象值改变

ktt[2][0] = 2;
show1(ktt[2][0],ktemp3[0]);///新数组中值改变

</script>
</body>

</html>


如有BUG,欢迎指出~
联系方式:hh_0828@outlook.com 
不胜感激~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html js javascript 前端 code