JS:use strict严格模式与Object.freeze冻结变量

本文探讨了JavaScript的严格模式如何提升代码质量,通过实例展示如何在作用域中应用严格模式,以及Object.freeze用于锁定变量防止意外修改。了解如何利用这些工具确保代码的稳定性和可维护性。
摘要由CSDN通过智能技术生成
一、use strict严格模式:高质量代码守卫

严格模式的作用域:当前作用域及其子作用域

严格模式使一切不规范的代码都会报错,使代码可用范围更广泛,举几个例子。

<body>
    <script>
        "use strict";
        web = 22;
        console.log(web);
    </script>
</body>

在这里插入图片描述

例如变量未被定义,使用严格模式会提醒报错。

<body>
    <script>
        "use strict";
        function show1() {
            web = 'yooo';
        }
        function show2() {
            site = 'alison';
        }
        show1();
    </script>
</body>

在这里插入图片描述

严格模式还作用于当前作用域的子作用域。

<body>
    <script>
        function show1() {
            "use strict";
            web = 'yooo';
        }
        function show2() {
            site = 'alison';
        }
        show2();
    </script>
</body>

当作用域更改为show1()函数内后,show2()就不会被严格模式所约束,不会报错。

二、Object.freeze冻结变量

有时声明的变量会被误操作而改变,如下。

<body>
    <script>
        const HOST = {
            url: "yooo.com",
            port: 443
        };
        HOST.port = 80;
        console.log(HOST);
    </script>
</body>

在这里插入图片描述

这时可以使用变量冻结来阻止改变,使代码更健壮稳定。

<body>
    <script>
        const HOST = {
            url: "yooo.com",
            port: 443
        };
        Object.freeze(HOST);
        HOST.port = 80;
        console.log(HOST);
    </script>
</body>

在这里插入图片描述

但无报错提示可能会让开发者不知道自己改变了被冻结的变量,因此使用严格模式。

<body>
    <script>
        "use strict";
        const HOST = {
            url: "yooo.com",
            port: 443
        };
        Object.freeze(HOST);
        HOST.port = 80;
        console.log(HOST);
    </script>
</body>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值