美文网首页
严格模式

严格模式

作者: IvyAutumn | 来源:发表于2018-12-13 14:56 被阅读0次

严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强安全性。这样的一个好处就是向上兼容,比如某个浏览器不支持这种模式的话就会被当成普通的字符串被忽略掉。
解读:
1.修复语言上的不足: 比如禁用with。大量使用with语句会导致性能下降,同时也会给调试代码造成困难。

  1. 提供更强的错误检查:比如重复的在字面量中写重复的属性名,或者删除一些不可配置的属性,或者尝试给没有申明的变量赋值而隐式的创建了全局变量,这里都有错误检查的机制。
    3.安全性上,比如eval变成独立作用域,对动态执行代码的时候相对会比较安全。

进入严格模式的方式:

  • 指定函数在严格模式下执行
function doSomething(){
    "use strict";
    //函数体
}
  • 要在整个脚本中启用严格模式,可以在顶部添"use strict";

严格模式下

  1. 不允许用with
  2. 不允许未声明的变量被赋值
  3. arguments变为参数的静态副本。对arguments赋值不会影响实际参数a的值。但如果传入的是一个对象,则还是会影响。


    image.png
  4. delete参数、函数名会报错。SyntaxError
  5. delete不可配置的属性报错


    image.png
  6. 对象字面量重复属性名报错


    image.png
  7. 禁止八进制字面量


    image.png
  8. eval, arguments变为关键字,不能作为变量、函数名
  9. eval变成独立作用域


    image.png

总结

image.png

相关文章

  • 面向对象-严格模式、作用域

    严格模式 js有两中开发模式:非严格模式(默认)+严格模式(“ues strict”) 严格模式:会进行更严格的代...

  • JavaScript this

    全局下this 非严格模式/严格模式 window 函数内this 非严格模式 window 严格模式 undef...

  • 开发中的严格模式

    js中有严格模式和非严格模式两种运行环境 在开发中,有非严格模式和严格模式2种开发模式 在严格模式下,会做更加严格...

  • 严格模式和非严格模式

    es6添加了严格模式("use strict")主要作用: 1.严格模式通过抛出错误来消除一些原有的静默错误。 2...

  • JS基本类型和变量

    严格模式 ECMAScripr5引入了严格模式。启用严格模式可以在顶部添加: “use strict” 严格模式下...

  • 严格模式

    ECMScript 5引入严格模式(strict mode)。严格模式定义了一种不同的解析与执行模型,ES3中的不...

  • 严格模式

    概览 严格模式的 目的:使代码更加 安全和 易于优化,代表了这门语言未来的发展方向。我们应该在代码中一直使用。 内...

  • 严格模式

    除了正常的运行模式,JavaScript还有第二种运行模式:“严格模式”(strict mode)。顾名思义,这种...

  • 严格模式this

    在严格模式下,在全局作用域中,this指向window对象(和非严格模式一致) 对象的函数中的this指向调用函数...

  • 严格模式

    JS的严格模式: 定义和优点:严格模式是一种特殊的执行模式,它修复了部分语言上的不足(禁用with),提供了更强的...

网友评论

      本文标题:严格模式

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