javascript中的=

对于简单类型(如Number/Boolean/String)进行值的复制,而对于复杂类型(如Object/Array/Buffer)则只是传递其引用,不复制。

测试代码 :


console.log("Test simple type*************");

// test number
var m = 12;
var n = m;
n += 1;
console.log("Original number is " + m);
console.log("New number is " + n);

// test boolean
var p = true;
var q = p;
q = false;
console.log("Original boolean is " + p);
console.log("New boolean is " + q);

// test string
var a = "He is handsome !";
var b = a;
b += " Right !";
console.log("Original string is " + a);
console.log("New string is " + b);

// test array
var c = [1, "haha"];
var d = c;
d[0] = 3;
d[1] = "wuwu";
console.log("Original array is " + c);
console.log("New array is " + d);

// test obj
var e = { x: 1, y: "mm" };
var f = e;
f['x'] = 3;
f['y'] = "gg";
console.log("Original obj is ");
console.log(e);
console.log("New obj is ");
console.log(f);

// test buffer
var g = new Buffer(4);
var h = g;
h[0] = 3;
console.log("Original buffer is ");
console.log(g);
console.log("New buffer is ");
console.log(h);

console.log("Test  complecated type *************");

// test array
var i = [{ x: 1, y: 2 }, { x: 3, y: 4}];
var j = i;
j[0].z = 3;
console.log("Original array is ");
console.log(i);
console.log("New array is ");
console.log(j);

// test obj
var k = {u:{ x: 1, y: 2 }, v:{ x: 3, y: 4} };
var l = k;
l['u'].z = 3;
console.log("Original obj is ");
console.log(k);
console.log("New obj is ");
console.log(l);

console.log("Test in function *************");
var r = 1;
var s = new Number(r);
var t = {x:r}
var fct1 = function (x) { x = 3; console.log("in function r = " + r + ", x = " + x); }
var fct2 = function (x) { x = 3; console.log("in function s = " + s + ", x = " + x); }
var fct3 = function (x) { x.x = 3; console.log("in function r = " + r + ", t = "); console.log(t); }
console.log("Original number is " + r);
fct1(r);
console.log("New number is " + r);
fct2(s);
console.log("New number is " + s);
fct3(t);
console.log("New number is " + r);
console.log("New number is " + t.x);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值