JavaScript-對象解構賦值


注意點

對象的解構賦值和數組的解構賦值,除了符號不一樣,其它的一模一樣。數組解構使用 [],對象解構使用 {},在數組的解構賦值中,等號左邊的格式必須和等號右邊的格式一模一樣,才能完全解構,例如如下代碼:

<!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>

End


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM