JavaScript 中的变量是没有类型的,只有值才有。变量可以随时持有任何类型的值。
值和引用
基本类型值赋值 是建立一个副本
var a=2;
var b=a;
b++;
console.log(a) //2;
console.log(b) //3;
对象 数组 函数 赋值 是建立一个引用
var a=[1,2,3];
var b=a;
b.push(4);
console.log(a) //1.2.3.4;
console.log(b) //1.2.3.4;
我们无法自行决定使用值复制还是引用复制,一切由值的类型来决定
再次强调,new String("abc") 创建的是字符串 "abc" 的封装对象,而非基本类型值 "abc"。