一、按值传递
赋值其实是将原变量中的值复制一个副本给对方变量。
1.原始类型
例:Number,String,Boolean,Null,Undefined
在函数中修改新变量,不会影响原变量
例:
var a = 3;
var b = a;
b++;
console.log(a, b);//3,4
2.引用类型
例:Object,Array
在函数中用新变量修改对象,等效直接修改原对象
例:
var arr = ['1','2','string'];
var arr1 = arr;
arr1.pop();
console.log(arr);//['1', '2']
①因arr1拷贝arr,所以arr1的值为arr的值(故指向同一个地址,皆为0x1234)
②arr1.pop(),删除地址为0x1234数组最后一个元素,所以arr返回的数组中也没有‘string’
二、赋值的方式
只要是赋值,都存在按值传递
- 等号
=
- 函数传参
function add(a,b) {
a=3, b=5
}
- 对象属性
var lilei={
sname: "Li Lei"
}
- 框架中的绑定语法
:title='title'