美文网首页
javascript的strict模式

javascript的strict模式

作者: 天秤座的牛宝宝 | 来源:发表于2017-05-10 15:33 被阅读0次

语法

ecmascript从5.0开始,有一个“特殊”的模式,叫做strict,在代码中或者函数内调用

  'use strict'
  function a(){
    //do something...
  }
function a(){
  'use strict'
  //do something...
}

作用

使用strict最大的好处就是让js运行环境帮你检验js是否“最优”

  • 检查对象中的重复键
    var obj = {
      key1: 'a',
      key2: 'b',
      key1: 'c'  //obj.key1 = 'c',值被覆盖了
    };
    
    'use strict'
    var obj = {
      key1: 'a',
      key2: 'b',
      key1: 'c'  //这里会报错,因为之前已经声明了key1的这个key了
    };
    
  • 使用未声明变量
    funtion a(){
      z = 1;
    }
    a();    //不会报错,定义了全局变量z
    
    funtion a(){
      'use strict'
      z = 1;
    }
    a();    //报错,提示z未定义
    
  • 函数中重复的参数名
    function setInfo(name, age, name){
      //do something
    }
    //函数声明的时候就会报错
    
  • 在函数中对arguments进行操作
    function setName(name){
      arguments[0] = 'Jack';
      alert(name);
    }
    setName('Tom');  //赋值成功,弹出Jack
    
    'use strict'
    function setName(name){
      arguments[0] = 'Jack';
      alert(name);
    }
    setName('Tom');  //复制成功,弹出Tom,不会报错
    
  • 试图对只读的属性进行赋值操作
    function a(){
      Object.prototype = 0;
    }
    a();  //不报错,也不会赋值成功
    
    'use strict'
    function a(){
      Object.prototype = 0;
    }
    a();  //会报错
    
    想必还有很多好处,所以大家在code javascript的时候,务必加上strict吧

感谢这篇博文,我在此基础上做了一些扩展,文章地址

相关文章

网友评论

      本文标题:javascript的strict模式

      本文链接:https://www.haomeiwen.com/subject/onivrttx.html