JavaScript中,數組存儲單一變量,對象,數組時的區別


無意間看到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,歡迎指出~

聯繫方式:[email protected] 

不勝感激~



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章