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语句

      不允许使用八进制字面量

  • 相关阅读:
    display:inline、block、inline-block的区别
    CSS选择器优先级总结
    bootstarp模板01
    Vue深度学习(6)- 组件
    在Ubuntu下安装mongodb
    Ajax高级应用---Comet
    ubuntu安装
    linux使用
    跨浏览器的CORS
    防止伪造跨站请求
  • 原文地址:https://www.cnblogs.com/thonrt/p/5899405.html
Copyright © 2011-2022 走看看