05-严格模式

一、什么是严格模式

image

二、开启严格模式

    <!-- 为整个脚本(script标签)开启严格模式 -->
    <script>
        'use strict';
        //下面的js代码就会开启严格模式执行代码
    </script>
    <script>
        (function() {
            'use strict';
        })
    </script>
    <!-- 为某个函数开启严格模式 -->
    <script>
        function fn() {
            'use strict';
            //下面的代码按照严格模式执行
        }

        function fn() {
            //里面的还是按照普通模式执行
        }
    </script>

三、严格模式中的变化

    <script>
        'use strict'
        //1.变量名必须声明 再使用
        // num = 10
        var num = 10
        console.log(num);
        //2.不能随意删除已经声明好的变量
        //delete num;


        //3.不在严格模式下的this指向windows 
        //严格模式下全局作用域函数中的this是undefined
        // function fn() {
        //     console.log(this);
        // }
        // fn()

        //4.严格模式下 如果构造函数不加new调用 this会报错
        // function fn() {
        //     this.sex = '5'
        // }
        // var f = new fn()
        // console.log(f.sex);

        //5.定时器this指向的还是window(事件、对象还是指向调用者)
        setTimeout(function() {
            console.log(this);
        }, 2000)

        //6.严格模式下函数里面的参数不允许有重名
        // function fn(a, a) {
        //     console.log(a + a);
        // }
        // fn(1, 2);
    </script>
posted @ 2024-05-30 14:39  _你听得到  阅读(16)  评论(0)    收藏  举报