js値参照とアドレス参照
1682 ワード
テストデジタルタイプ 文字列タイプ ブールタイプ 配列タイプ オブジェクトタイプ
以上の結果:
数字、文字列、ブールタイプは元のタイプで、値参照配列、オブジェクトタイプはアドレス参照値参照参照であり、アドレス参照は元のタイプの方に深くコピーされます.
var m = 1000;
var n = m;
n++;
console.log(n); // 1001
console.log(m); // 1000
var str = "qwer";
var newstr = str;
newstr += "tyu";
console.log(newstr); // qwertyu
console.log(str); // qwer
var bool = true;
var newbool = bool;
newbool = false;
console.log(newbool); // false
console.log(bool); // true
var arr = [1,2,3,4,5];
var newarr = arr;
var y = newarr.splice(1,3);
console.log(y); // [2, 3, 4]
console.log(newarr); // [1, 5]
console.log(arr); // [1, 5]
var arr = [1,2,3,4,5];
var newarr = [];
for(var x in arr){
newarr.push(arr[x]);
}
var y = newarr.splice(1,3);
console.log(y); // [2, 3, 4]
console.log(newarr); // [1, 5]
console.log(arr); // [1, 2, 3, 4, 5]
var obj = {"name":"zhangsan","age":10,"sex":"nan"};
var newobj = obj;
newobj.name = "lisi";
console.log(newobj); // {name: "lisi", age: 10, sex: "nan"}
console.log(obj); // {name: "lisi", age: 10, sex: "nan"}
var obj = {"name":"zhangsan","age":10,"sex":"nan"};
for(var x in obj){
newobj[x] = obj[x];
}
newobj.name = "lisi";
console.log(newobj); // {name: "lisi", age: 10, sex: "nan"}
console.log(obj); // {name: "zhangsan", age: 10, sex: "nan"}
結論以上の結果:
数字、文字列、ブールタイプは元のタイプで、値参照配列、オブジェクトタイプはアドレス参照値参照参照であり、アドレス参照は元のタイプの方に深くコピーされます.