我是靠谱客的博主 大气秀发,最近开发中收集的这篇文章主要介绍es5--严格模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

a. "use strict";

不再兼容es3的一些不规则语法。使用全新的es5规范

两种用法:

  • 全局严格模式
  • 局部函数内严格模式(推荐)

特点:

就是一行字符串,不会对不兼容严格模式的浏览器产生影响,不支持width、arguments、callee、caller

变量复制前必须声明

变量必须定义再使用

普通函数中的this指向undefined

函数的形参不准重名

局部this必须被赋值(Person.call(null/undefined) 赋值什么就是什么),拒绝重复属性和参数

 b.es3.0和es5.0产生冲突的部分:

            es5.0严格模式下:es3.0和es5.0产生冲突的部分就是用es5.0;反之用es3.0

示例1:全局严格模式

 <script>
        //es5.0严格模式下
        "use strict";

        function test() {
            console.log(arguments.callee);
        }

        test();
</script>

示例2:局部函数内严格模式(推荐)

<script>
        function demo() {
            console.log(arguments.callee);
        }

        demo();

        function test() {
            //es5.0严格模式下
            "use strict";
            console.log(arguments.callee);
        }

        test();
</script>

c.width()

 <script>
        var obj = {
            name: "obj",
        }

        var name = 'window';

        function test() {
            var name = 'score';

            //with() 里面的代码按照正常的顺序执行,但是在width的()里添加对象的话
            //则会将这个对象当做width要执行的代码体的作用域链的最顶端,也就是会
            //改变作用域链
            with(obj) {
                console.log(name); //也就是这里的name会指向“obj"
            }
        }

        test();
</script>

命名空间的用法:

<script>
        var org = {
            dp1: {
                jc: {
                    name: 'abc',
                    age: 15
                },
                lin: {
                    name: 'ced',
                    age: 444
                }
            },
            dp2: {

            }
        };

        with(org.dp1.jc) {
            console.log(name);
        }

        with(org.dp1.lin) {
            console.log(name);
        }
</script>

最后

以上就是大气秀发为你收集整理的es5--严格模式的全部内容,希望文章能够帮你解决es5--严格模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部