js变量之间赋值有时会受另一变量值变化而受影响,举例变量a赋值给变量b,当变量a发生改变时,变量b有时也会跟着改变
js变量之间赋值有时会受另一变量值变化而受影响,举例变量a赋值给变量b,当变量a发生改变时,变量b有时也会跟着改变。
原因是变量都是整形、字符串、布尔型时赋值不会受影响,变量为数组、对象类型时会跟着发生改变,具体看下边案例:
<script type="text/javascript">
/** PHP变量赋值问题 **/
var a = 1;
var b = 2;
b = a;
a = 3;
console.log(b); // 输出:1
var a = 'a';
var b = 'b';
b = a;
a = 'c';
console.log(b); // 输出:a
var a = true;
var b = a;
a = false;
console.log(b); // 输出:true
var a = [];
var b = [];
a['id'] = 1;
a['name'] = 'a';
b['id'] = 2;
b['name'] = 'b';
b = a;
a['id'] = 3;
a['name'] = 'c';
console.log(b);
// 输出:[id: 3, name: "c"]
// 变量b值跟着改变,受影响
var a = {};
var b = {};
a.id = 1;
a.name = 'a';
b.id = 2;
b.name = 'b';
b = a;
a.id = 3;
a.name = 'c';
console.log(b);
// 输出:{id: 3, name: "c"}
// 变量b值跟着改变,受影响
</script>