zoukankan      html  css  js  c++  java
  • es5.0严格模式

    现在的浏览器是基于es3.0原有的以及es5.0新增的语法方法使用的。

    而es3.0和es5.0产生冲突的部分浏览器默认采用es3.0语法规范。

    因此es5.0产生了一个新特性——严格模式,一旦启用es5.0严格模式,

    es3.0和es5.0产生冲突的部分浏览器将不再兼容es3的一些不规范语法,

    使用全新的es5规范。

    从es5.0开始,javscript有两种运行模式:正常模式和严格模式('use strict')。

    作用:

    1、消除javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

    2、消除代码运行的一些不安全性,促进代码运行的安全;

    3、提高编译器效率,增加运行速度;

    4、为未来新版本的javascript做好铺垫

    启用:

    “use strict” 该字符串必须写在需要启用严格模式的代码之前

      例如下面的代码: 

    <script>
    //这部分将不会启用严格模式
    ;
    "use strict"; function test() { console.log(arguments.callee)}
    </script>
    <s<cript>
    //全局模式
    "use strict";
    function test() {
    console.log(arguments.callee)//严格模式下这段代码将会报错
    }
    test();
    </script>
    <script>
    function test(){
    console.log(arguments.callee)//代码没有启用严格模式,正常用行
    }
    </script>
    //局部模式
    <script>
    function test(){
    "use strict"
    console.log(arguments.callee)}
    </script>

    严格模式下的语法限制

    js属于弱类语言,严格模式限制了许多强大的方法的使用,降低了灵活性,但有利于实际极开发

    代码展示:

    例如with语句

    非严格模式
    <script>
    //"use strict"
    var obj={
        name : "obj",
    }
    function test(){
      var name = "abc";
      with (obj){
        console.log(name)//非严格模式下打印obj
      }
    }
    test();
    </script>
    严格模式
    <script>
    "use strict"
    var obj = {name:"obj"}
    function test(){var name="abc";with(obj){console.log(name)}}
    //严格模式下报错
    //Uncaught SyntaxError: Strict mode code may not include a with statement
    //语法类型错误:严格模式代码不能包含with语句
    </script>

  • 相关阅读:
    基于React 的audio音频播放组件
    React Context 的基本用法
    Video-React 视频播放组件的使用
    Html5 Canvas 使用
    React 中使用富文本编辑器 Braft Editor ,并集成上传图片功能
    ant design pro 项目实现路由级的动态加载按需加载
    确保代码仓库中包含 yarn.lock 文件
    ES6 对象解构赋值(浅拷贝 VS 深拷贝)
    JS 中判断数据类型是否为 null、undefined 或 NaN
    js中的数据类型及判断方法
  • 原文地址:https://www.cnblogs.com/punisher999/p/12342965.html
Copyright © 2011-2022 走看看