ES6——第二天(塊級作用域)

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

塊級作用域

1.為什麼需要塊級作用域

避免內層變數覆蓋外層變數
避免用來計數的迴圈變數洩露為全域性變數

2.ES6的塊級作用域

let為js新增塊級作用域
ES6允許塊級作用域的任意巢狀
外層作用域無法讀取內層作用域的變數
內層作用域可以定義外層作用域的同名變數

外層程式碼塊不受內層程式碼塊的影響

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>

    <!--載入Traceur的庫檔案-->
    <script type="text/javascript" src="../js/traceur.js"></script>
    <!--將庫檔案用於瀏覽器-->
    <script type="text/javascript" src="../js/browerSystem.js"></script>
    <script type="text/javascript" src="../js/bootstrap.js"></script>
    <!--js-->
    <script type="text/javascript" src="../js/jquery.min.js"></script>

    <!--type="module":Traceur 編譯器識別 ES6 程式碼的標誌,
    編譯器會自動將所有type=module的程式碼編譯為 ES5,然後再交給瀏覽器執行-->
    <script type="module">
        $(function () {
            function f1 () {
                let n = 5;
                if(true){
                    let n = 10;
                }
                console.log(n)
            }
            f1()
        })
    </script>

</head>
<body>

</body>
</html>

3. 塊級作用域與函式宣告—-最好別用~~~~~~~~~~~~略略略

ES6明確允許在塊級作用域中宣告函式
塊級作用域中宣告的函式,在塊級作用域之外不可以引用
避免出錯,在塊級作用域中宣告函式的是,寫成函式表示式,而不是函式宣告語句

4.do表示式

本質上,塊級作用域是一個語句,將做個操作封裝在一起,沒有返回值

在塊級作用域之前加上do,使它變為do表示式,返回內部最後執行的表示式的值

前端開發 最新文章