注意點
對象的解構賦值和數組的解構賦值,除了符號不一樣,其它的一模一樣。數組解構使用 []
,對象解構使用 {}
,在數組的解構賦值中,等號左邊的格式必須和等號右邊的格式一模一樣,才能完全解構,例如如下代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let [a, b, c] = [1, 3, 5];
console.log(a, b, c);
</script>
</head>
<body>
</body>
</html>
在數組的解構賦值中,兩邊的個數可以不一樣:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let [a, b] = [1, 3, 5];
console.log(a, b);
let [c, d, e] = [1, 3];
console.log(c, d, e);
</script>
</head>
<body>
</body>
</html>
在數組的解構賦值中,如果右邊少於左邊,我們可以給左邊指定默認值:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let [a, b, c = 666] = [1, 3];
console.log(a, b, c);
</script>
</head>
<body>
</body>
</html>
如上都是數組的解構賦值,接下來就來看看對象的解構賦值:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let obj = {
name: "BNTang",
age: 34
}
let name = obj.name;
let age = obj.age;
console.log(name, age);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let obj = {
name: "BNTang",
age: 34
}
let {name, age} = obj;
console.log(name, age);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {name, age} = {name: "BNTang", age: 34};
console.log(name, age);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {name} = {name: "BNTang", age: 34};
console.log(name);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {name, age, height} = {name: "BNTang", age: 34};
console.log(name, age, height);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {name, age, height = 1.80} = {name: "BNTang", age: 34};
console.log(name, age, height);
</script>
</head>
<body>
</body>
</html>
注意點:在對象解構賦值中,左邊的變量名稱必須和對象的屬性名稱一致,才能解構出數據:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {a, b} = {name: "BNTang", age: 34};
console.log(a, b);
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script>
let {age} = {name: "BNTang", age: 34};
console.log(age);
</script>
</head>
<body>
</body>
</html>