抽象轻松js

这把锁,特别的好,又特别的棒,目前阶段还未发现问题,等发现问题会专门发的

这是这次的代码

        //"use strict";
        //声明对象——i
        const i = {
            name : "秋刀鱼",
            URL : "qiudaoyu.com"
        };
        //声明数组——x
        const x =["好鱼","就吃","秋刀鱼"];
        x[0]="海鱼";
        Object.freeze(i);
        //修改的部分
        i.name = "qiu dao yu";
        i.URL = "qiuhaha.com";
        console.log(i);
        //输出声明x
        console.log(x);

首先是开头的严格模式,保持一个小习惯,欲练此功,必先自宫

翻译下:要写js,必先写下严格模式

原因很简单,运行一下代码看看没有严格模式的效果

抽象轻松js_第1张图片

没有报错,再看看开了严格模式的

 

报错了,这就是严格模式下的优化,报错的位置 ,波浪线

抽象轻松js_第2张图片

 第二部分,const声明,我靠,不是说const的值在同一作用域里不能改值吗,

这个后面会具体将,这里会简单的说一下

当你声明的值是对象、数组的时候,对象里的内容是可以变的(具体内容为传值和传址)

这里不详细,只需要知道在对象和数组的时候值可以改变

数组对象共同点:多条语句的时候,用逗号隔开

不同点:对象由两部分组成,一部分为名,另一部分为值

              数组只有一部分,那就是值

        //"use strict";
        //声明对象——i
        const i = {
            name : "秋刀鱼",
            URL : "qiudaoyu.com"
        };
        //声明数组——x
        const x =["好鱼","就吃","秋刀鱼"];
        x[0]="海鱼";
        Object.freeze(i);
        //修改的部分
        i.name = "qiu dao yu";
        i.URL = "qiuhaha.com";
        console.log(i);
        //输出声明x
        console.log(x);

这是没开始严格模式下的

抽象轻松js_第3张图片

 开了严格模式,会因为锁的问题报错

第三部分,锁

Object.freeze(声明的名字);

ps:这个声明的名字很多很随便,全看你个人,例如我们的声明数组为——x的时候

那么这个锁就变成了 Object.freeze(x);

这把锁可以锁住你的对象、数组,让它无法改变,没有开启严格模式的时候,尽管你修改它,它不会报错也不会显示,但是你开了严格模式,它就会报错,你不删除修改的部分就会没法运行

小结

锁的作用,锁住变量,让它无法改变

锁很好用,但是这是在严格模式下,严格模式下的锁才是真正意义上的锁,它不会让锁用错钥匙

钥匙是指(你不小心修改的值),严格模式下这把钥匙是会直接报错的,非严格模式下是不会报错的

还是那句话——熟练使用严格模式可以合理规范代码的质量

你可能感兴趣的:(抽象js,javascript,开发语言,ecmascript)