zoukankan      html  css  js  c++  java
  • 'use strict'

      在支持ECMAScript5严格模式解释器的浏览器下,在脚本开始处加上'use strict'指令来表示下面的代码将用严格模式的解释器来解释。

    'use strict';
    // something to do

      与普通模式区别的是

    • 禁止使用具有作用域链的with语句
    • 所有的变量须在声明后使用
      function test1() {
          a = 1; // 创建了一个全局变量
          console.log(1); // 1
      }
      function test2(){
          'use strict';
          b = 1; // 引用错误异常 ReferenceError
          console.log(b);
      }
    • 函数体内的this===undefined
      function test3(){
          console.log(this); // this为全局对象
      }
      function test4(){
          'use strict';
          console.log(this); // undefined
      }
    • call和apply方法里的this总是第一个传入的参数,不会进行转换
      function test5(){
          console.log(this);
      }
      function test6(){
          'use strict';
          console.log(this);
      }
      test5.call(); // 输出全局变量
      test6.call(); // 输出undefined
    • 操作不可编辑的属性会报错
      function test7(){
          'use strict';
          delete Object.prototype;
      }
      test7(); // 抛出TypeError异常
    • 同作用域下同名属性和同名方法会报错(非严格模式下不报错)
    • 不允许八进制直接量(非严格模式中某些浏览器实现可以)
    • 在严格模式中eval和arguments作为关键字,不能赋值,也不能用来做变量、函数名、用作函数参数或用作catch模块的标识符
    • delete后出现非法标识符会报错
    • 限制了对调用栈的检测能力,如arguments.callee和arguments.caller。这两个属性调用时在严格模式下都会抛出类型错误。
  • 相关阅读:
    《网络攻防》第九周学习总结
    《网络攻防》第八周学习总结
    《网络攻防》第七周学习总结
    《网络攻防》第六周学习总结
    《网络攻防》第五周学习总结
    《网络攻防》第四周学习总结
    《网络攻防》第三周学习总结
    《网络攻防第二周作业》
    Kafka学习
    HBase简介及集群安装
  • 原文地址:https://www.cnblogs.com/gabin/p/3701243.html
Copyright © 2011-2022 走看看