最近在开发中遇到一个小问题,就是由于js的浅拷贝导致变量被污染,突然发现对于js的变量值传递和引用传值并没有特别注意,如今总结如下,以备来者考虑。
JS的变量分普通类型和引用类型,具体如下:
基本数据类型:String,Boolean,Number,Undefined,Null;
引用数据类型:Object(Array,Date,RegExp,Function);
对于普通类型的变量赋值都是值传递,而引用类型变量的赋值。例如下面的代码:
var b = 3; var c = b; b = 2; console.log(b); // 2 console.log(c); // 3