JavaScript 中有多种赋值方式。
1、基本赋值:使用等号 "=" 进行赋值,例如 let a = 1
。
2、多变量赋值:使用逗号 "," 将多个变量赋值成同一个值,例如 let a = 1, b = 2
。
3、增量赋值:使用算术运算符 "+"、"-"、"*"、"/"、"%" 等进行赋值,例如 a += 1
。
4、链式赋值:使用逗号 "," 连接多个赋值语句,例如 a = 1, b = 2
。
5、扩展运算符赋值:使用三个点("...")展开数组或对象,例如 let arr1 = [1, 2, 3], arr2 = [...arr1, 4, 5]
。
6、解构(结构)赋值:使用花括号 "{}" 或 "[]" 将对象或数组的属性或元素赋值给多个变量,例如 let {a, b} = {a: 1, b: 2}
。
对于数组:
let arr = [1, 2, 3];
let [a, b, c] = arr;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
对于对象:
let obj = {name: "John", age: 30};
let {name, age} = obj;
console.log(name); // John
console.log(age); // 30
解构赋值还可以用于解构函数返回值,例如:
解构函数返回对象
function getData() {
return {a: 1, b: 2};
}
let {a, b} = getData();
console.log(a); // 1
console.log(b); // 2
解构函数返回数组
function returnMultipleValue(){
return [1, 2, 3];
}
let [a, b, c] = returnMultipleValue();
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
对于复杂的数据结构,可以使用嵌套的解构赋值,例如:
let obj = {a: {b: 1, c: 2}, d: 3};
let {a: {b}, d} = obj;
console.log(b); // 1
console.log(d); // 3
注意:解构赋值的变量必须与被解构的数组或对象的属性名称相对应,否则会报错。
7、交换赋值:使用解构(结构)赋值交换两个变量的值,例如 [a, b] = [b, a]
。
8、默认值赋值:解构赋值时,若对象或数组不存在该属性或元素,可以使用默认值赋值。
对于对象属性的解构赋值,可以使用默认值,例如:
let obj = {a: 1, b: 2};
let {a, b, c = 3} = obj;
console.log(c); // 3
对于数组结构赋值,也可以使用默认值,例如:
let arr = [1, 2];
let [a, b, c = 3] = arr;
console.log(c); // 3