• JS 严格模式


    标志
    
    "use strict";
    //老版本浏览器会自动忽略
    调用
    
    //整个文件调用    
    (function(){
        "use strict";
    })();
    //单个函数调用
    function(){
        "use strict";
    
    }
    语法 行为
    
    严格模式下 ,不声明的变量赋值的话,会报错误
    
    禁止使用with
    
    eval作用域只在内部,不再能够生成全局变量了
    
    this关键字不再指向全局
    
    构造函数如果忘记new this也不会指向全局 ,抛出错误
    
    禁止内部遍历调用栈
    
    function f1(){
    
      "use strict";
    
      f1.caller;    // 报错
      f1.arguments; // 报错
    
    }
    
    f1();
    无法删除变量 只有configurable:true时才可以
    
    "use strict";
    
    var x;
    
    delete x; // 语法错误
    
    var o = Object.create(null, {
                x: {
                    value: 1,
                    configurable: true
                }
    });
    
    delete o.x; // 删除成功 
    正常模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。
    
    "use strict";
    
    var o = {};
    
    Object.defineProperty(o, "v", { value: 1, writable: false });
    
    o.v = 2; // 报错
    严格模式下,对禁止扩展的对象添加新属性,会报错。
    
    严格模式下,删除一个不可删除的属性,会报错。
    
    严格模式下,对一个使用getter方法读取的属性进行赋值,会报错。
    
    对象不能有重名的属性
    
    "use strict";
    
    var o = {
        p: 1,
        p: 2
    }; // 语法错误
    多个重名参数报错
    
    "use strict";
    
    function f(a, a, b) { // 语法错误  
    
        return ; 
    
    }
    禁止八进制表示法
    
    不允许对arguments赋值
    
    arguments不再追踪参数的变化
    
    禁止使用arguments.callee
    
    不允许在非函数的代码块内声明函数
    
        "use strict";
    
        if (true) {
    
          function f() { } // 语法错误
    
        }
    
        for (var i = 0; i < 5; i++) {
    
          function f2() { } // 语法错误
    
        }
    

      

    Now or nerver .
  • 相关阅读:
    [BZOJ3997][TJOI2015]组合数学(Dilworth定理+DP)
    [BZOJ4000][TJOI2015]棋盘(状压DP+矩阵快速幂)
    BZOJ2462[Beijing2011]矩阵模板(二维Hash)
    [BZOJ2458][BeiJing2011]最小三角形(分治)
    [HDU5354]Bipartite Graph(CDQ分治+并查集)
    [NOIP2017]时间复杂度(模拟)
    [Luogu2540][NOIP2016]斗地主增强版(搜索+DP)
    [Luogu1979][NOIP2013]华容道(BFS+SPFA)
    WQS二分题集
    [CC-XXOR]Chef and Easy Problem
  • 原文地址:https://www.cnblogs.com/iyueyao/p/3434493.html
Copyright © 2020-2023  润新知