js値参照とアドレス参照


テスト
  • デジタルタイプ
  • 		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"}
    
    結論
    以上の結果:
    数字、文字列、ブールタイプは元のタイプで、値参照配列、オブジェクトタイプはアドレス参照値参照参照であり、アドレス参照は元のタイプの方に深くコピーされます.