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

    use strict是ECMAscript5的特性,不建议在全局使用use strict,因为当压缩不同文件时候,一个文件使用了use strict,一个没有使用,没有使用use strict的文件就会报错

    1.作用

      消除js语法不合理、不严谨、不安全的问题;提高编译器效率,增加运行速度

    2.支持的浏览器

      IE10+,Firefox4+,safari12+,opera12+,chrome

    3.规则

      变量:

        不允许创建全局变量 eg: name = "bella"; 

        不能对变量进行delete操作 eg: var name = "bella"; delete name;

      对象:

        不能为只读属性赋值:

          ECMAscript5出现了Object.definePropotype方法改变了javascript语言中所有object是Public的这一说法;

          Object.definePropotype(obj,prop,descriptor):需要添加或修改的对象,属性名称,属性描述;

          var person = {name:"bella",sex:"female"};Object.definePropotype(person ,"name",{value:"alias",writable:false})

        不能为不可配置的属性使用delete操作

          不可配置也是通过Object.definePropotype来设置的

          var person = {name:"bella",sex:"female"};Object.definePropotype(person ,"name",{configurable:false})

      函数:

        参数必须唯一 eg: function(a,a){}

        修改形参不会影响arguments  eg:funtion(arg1){ arg1 = "bella";} 非严格模式下arguments[0]:bella,arguments被修改了

        不允许使用arguments.callee 和 arguments.caller

      不允许eval()在包含上下文中创建变量或函数

        一般都很少用eval,因为eval会将字符串当做js代码来执行,会改变上下文 eg:eval("var x = 10"); alert(x)这样是不允许的

      不允许this为null 或 undefined

      不允许使用with语句

      不允许使用八进制字面量

  • 相关阅读:
    10-vue自定义指令
    09-vue过滤器的基本使用
    vue总结
    07-vue的v-if和v-show
    06-循环数组v-for
    Java通过JNA调用dll或so
    Centos7安装FRP内网穿透工具进行远程连接
    centos7检查Java项目存活与否并重启
    centos7中Java项目重启
    Ubuntu 19.04: Connect to GNOME desktop environment via XRDP
  • 原文地址:https://www.cnblogs.com/thonrt/p/5899405.html
Copyright © 2011-2022 走看看