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

    本文章仅做学习之用,转载自阮一峰老师的个人博客。

    1.在脚本文件的开头插入'use strict';

    ex:

    <script type="text/javascript">
            'use strict';
            console.log('这是严格模式')
        </script>
        <script type="text/javascript">
            console.log('这是正常模式')
        </script>

    2.针对单个函数

     function strict(){
        "use strict";
        return "这是严格模式。";
      }
    
      function notStrict() {
        return "这是正常模式。";
      }

    3.严格模式的一些特点

      3.1.变量必须声明

    "use strict";
    
      v = 1; // 报错,v未声明
    
      for(i = 0; i < 2; i++) { // 报错,i未声明
      }

      3.2.静态绑定

      3.3.创建eval作用域

      3.4.禁止this对象指向全局对象

     function f(){
        return !this;
      }
      // 返回false,因为"this"指向全局对象,"!this"就是false
    
      function f(){
        "use strict";
        return !this;
      }
      // 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

      因此,使用构造函数时,如果忘了加new,this不再指向全局对象,而是报错。

    function f(){
    
        "use strict";
    
        this.a = 1;
    
      };
    
      f();// 报错,this未定义

      3.5.禁止删除变量

      严格模式下无法删除变量。只有configurable设置为true的对象属性,才能被删除。

    "use strict";
    
      var x;
    
      delete x; // 语法错误
    
      var o = Object.create(null, {'x': {
          value: 1,
          configurable: true
      }});
    
      delete o.x; // 删除成功

      3.6.对象不能有重名属性

    "use strict";
    
      var o = {
        p: 1,
        p: 2
      }; // 语法错误
  • 相关阅读:
    【Rust】无关联类型
    【Rust】trait克隆
    【Rust】trait动态返回
    【Rust】trait迭代器
    【Rust】特质trait
    【Rust】运算符重载
    【Rust】trait超集
    【Rust】trait删除
    【Rust】trait实现
    wpf之数据模板 安静点
  • 原文地址:https://www.cnblogs.com/white55k/p/11983038.html
Copyright © 2011-2022 走看看