el-dialog es6 字符串模板_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

好啦,此篇章到此结束,知识点比较简单,但是非常重要,因为天天在使用。完成一篇写作是非常开心的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值