1. 程式人生 > 其它 >el-dialog es6 字串模板_ES6 的新鮮玩意兒——塊作用域、字串模板

el-dialog es6 字串模板_ES6 的新鮮玩意兒——塊作用域、字串模板

技術標籤:el-dialog es6 字串模板

對於C#人來說,我們都是習慣了在需要的時候定義變數,總是以為變數會在使用完成後自動的就清理了記憶體,不會造成變數汙染。可是js的var 變數都是函式級別的,不是使用{}引起來就好了,所以有時候會造成變數汙染錯誤。幸好es6推出了let,const也變成塊作用域了。不過我不清楚為什麼還保留著var,可能是為了相容歷史版本吧。知識點擼起,尤拉。

1、let:塊級可變作用域關鍵詞。

/*****
 * 測試作用域類,直接使用export進入匯出
 */
class TestsScope{
    testLet(){
       let name = "親";
       console.log(name);

        {
            //塊作用域,超出{} 將不可使用
            let name1 = "您好";
            console.log(name1);
        }

        console.log(name1);//超出作用域,將報Uncaught ReferenceError: name1 is not defined 錯誤
    }
}

呼叫html:

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

</head>
<body>
    <script src="TestsScope.js"></script>

    <script>
        let testScope = new TestsScope();
        testScope.testLet();
    </script>
</body>
</html>

結果:

a07c10d6054c71960884110afb73a9fa.png

39c825417f52adba0629fdbc258aaaeb.png

2、const:塊級常量作用域關鍵詞。const字面量的變數如果是基本型別,則值不可以再修改;如果是object型別,則不可以重新給予賦值,但是可以修改其內容結構的子項值。

/*****
 * 測試作用域類,直接使用export進入匯出
 */
class TestsScope{
    testLet(){
       let name = "親";
       console.log(name);

        {
            //塊作用域,超出{} 將不可使用
            let name1 = "您好";
            console.log(name1);
        }

        console.log(name1);//超出作用域,將報Uncaught ReferenceError: name1 is not defined 錯誤
    }

    testConst(){
        //const 變數對於基本型別資料是不可以再修改的
        const name = "親";
        console.log(name);

        //語法錯誤,變數值不可再修改
        // name = "愛";

        const obj = new Array();
        console.log(obj);

        //變數為object型別的,可以修改內部的資料
        obj.push("sdf");
        console.log(obj);

        obj[0] = "change";
        console.log(obj);
        //語法錯誤,obj型別不可以修改
        obj=[];
    }
}

c975a23250c3fc50dc33c72ba7ba472e.png

a00bea568523bded1f652fa240551c2b.png

3、var:此修飾符的變數仍然是function級別的,擼起驗證。

/*****
 * 測試作用域類,直接使用export進入匯出
 */
class TestsScope{
    testLet(){
       let name = "親";
       console.log(name);

        {
            //塊作用域,超出{} 將不可使用
            let name1 = "您好";
            console.log(name1);
        }

        console.log(name1);//超出作用域,將報Uncaught ReferenceError: name1 is not defined 錯誤
    }

    testConst(){
        //const 變數對於基本型別資料是不可以再修改的
        const name = "親";
        console.log(name);

        //語法錯誤,變數值不可再修改
        // name = "愛";

        const obj = new Array();
        console.log(obj);

        //變數為object型別的,可以修改內部的資料
        obj.push("sdf");
        console.log(obj);

        obj[0] = "change";
        console.log(obj);
        //語法錯誤,obj型別不可以修改
       // obj=[];
    }

    /**
     * 測試var
     */
    testVar(){
        {
            var name = "親";

            {
                var name1="愛";
            }
        }
        //不會報錯,會打印出  親
        console.log(name);

        //不會報錯,會打印出  愛
        console.log(name1);
    }
}

4、字串模板:我們沒有這個語法糖的時候,拼一大串字串時候,總是得非常小心翼翼的進行+++,真的一不小心就錯了。在C#中早就實現了字串模板,真的是方便。

擼起

/*****
 * 測試作用域類,直接使用export進入匯出
 */
class TestsScope{
    testLet(){
       let name = "親";
       console.log(name);

        {
            //塊作用域,超出{} 將不可使用
            let name1 = "您好";
            console.log(name1);
        }

        console.log(name1);//超出作用域,將報Uncaught ReferenceError: name1 is not defined 錯誤
    }

    testConst(){
        //const 變數對於基本型別資料是不可以再修改的
        const name = "親";
        console.log(name);

        //語法錯誤,變數值不可再修改
        // name = "愛";

        const obj = new Array();
        console.log(obj);

        //變數為object型別的,可以修改內部的資料
        obj.push("sdf");
        console.log(obj);

        obj[0] = "change";
        console.log(obj);
        //語法錯誤,obj型別不可以修改
       // obj=[];
    }

    /**
     * 測試var
     */
    testVar(){
        {
            var name = "親";

            {
                var name1="愛";
            }
        }
        //不會報錯,會打印出  親
        console.log(name);

        //不會報錯,會打印出  愛
        console.log(name1);
    }

   /***
     * 測試字串模板變數
     */
    testStringTemplate(){
        let money = 100000000;
        let dear = "親愛的";
        let name = "愛錢的大傻憨"

        let str = `${dear}${name},期待你的年終獎是${money}元`;
        //不會報錯,會打印出  愛
        console.log(str);
    }

}

結果

584ee3187b4c1e7987bad3e32fb5c122.png

好啦,此篇章到此結束,知識點比較簡單,但是非常重要,因為天天在使用。完成一篇寫作是非常開心的事情。