一、基本介绍
js中只有值传递!!!
基本数据类型总是通过值复制的方式来赋值/传递
引用数据类型总是通过引用复制来完成赋值/传递
二、两种类型的赋值形式
<script type="text/javascript">
// 基本数据类型总是通过值复制的方式来赋值/传递
// 引用数据类型总是通过引用复制来完成赋值/传递
var a=2;
var b=a;
b++;
console.log(a);//2
console.log(b);//3
var arr1 = [1,2,3];
var arr2=arr1;
console.log(arr1);// [1,2,3]
console.log(arr2);// [1,2,3]
arr2.push(4);
console.log(arr1);// [1,2,3,4]
console.log(arr2);// [1,2,3,4]
</script>
三、引用数据类型参数传递实例
实例1:
<script type="text/javascript">
function foo(arr){
arr.push(4);
console.log(arr);//[1,2,3,4]
arr=["a","b","c"];
console.log(arr);//["a","b","c"]
}
var arr=[1,2,3];
foo(arr);
console.log(arr);//[1,2,3,4]
</script>
实例2:
<script type="text/javascript">
function foo(arr){
arr.push(4);
console.log(arr);//[1,2,3,4]
//清空数组
arr.length=0;
arr.push("a");
arr.push("b");
arr.push("c");
console.log(arr);//[a,b,c]
}
var arr=[1,2,3];
foo(arr);
console.log(arr);//[a,b,c]
</script>
实例3:
<script type="text/javascript">
function foo(arr){
arr.push(4);
console.log(arr);//
//清空数组
arr.length=0;
arr.push("a");
arr.push("b");
arr.push("c");
console.log(arr);//
}
var arr=[1,2,3];
foo(arr.slice());
console.log(arr);//
</script>