严格模式与普通模式的区别

作者: Nice先生的狂想曲 | 来源:发表于2019-10-21 00:20 被阅读0次

前言

在ES5推出了严格模式的说法,而我们许多项目之中也会默认为严格模式。在通常情况下,我们也不会因为严格模式而局限自己的代码编写,那么问题来了,严格模式究竟是什么意思呢?


严格模式

写法: 'use strict'

作用域:按照写入模式的作用域作用

this指向问题
  1. 严格模式下全局作用域中的函数中的thisundefined;普通模式下的this指向window
  2. 严格模式下构造函数需加new调用,this指向创建的对象实例,否则会报错;普通模式下不会报错,且相对于调用全局作用域的函数,即this指向window
  3. 定时器的this指向window
  4. 事件、对象还是指向调用者
函数变化
  1. 不能有重名的参数,否则报错;普通模式下允许重名参数,但会覆盖
  2. 不允许在非函数的代码块内声明函数
//不可取
if(a===0){
  function b(){}
}

//可取,合法的
function a(){
  function b(){}
}

相关文章

  • 严格模式与普通模式的区别

    前言 在ES5推出了严格模式的说法,而我们许多项目之中也会默认为严格模式。在通常情况下,我们也不会因为严格模式而局...

  • 面试题

    HTML ·Doctype作用?严格模式(标准模式)与混杂模式(js运作模式)如何区别?它们有何意义? (1)、声...

  • web前端-js基础-javascript高级程序设计(第三版)

    严格模式和非严格模式的区别 'use strict' 严格模式下声明变量的时候必须带上var, 否则会报Refer...

  • 记录一下JS的小知识点

    1.严格模式和非严格模式的区别 严格模式 变量必须先声明,直接给变量赋值,不会隐式创建全局变量,不能用with, ...

  • js的this指向总结

    this对象 js严格模式下没有window 一、普通函数 非严格模式 普通函数全局调用和局部调用都是指向wind...

  • 严格模式和混杂模式区别

    在严格模式下,浏览器按照w3c的标准对浏览器进行渲染,在混杂模式下,页面一宽松向后兼容的方式显示 定义和用法

  • 严格模式和怪异模式的区别

    严格模式(也叫标准模式)和怪异模式,是浏览器解析CSS时的两种模式。 严格模式:即标准模式。用通俗易懂的话来讲,就...

  • 严格模式和怪异模式的区别

    每个HTML5文档的首行都是一个文档声明,这种文档声明是用来表示后面的那些个页面标签遵循哪一个原则的,这是HTML...

  • 2018-03-12

    DOCTYPE 的作用 Doctype作用?严格模式与混杂模式如何区分?它们有何意义? 怪异模式和严格模式(译注:...

  • js严格模式简单了解及与非严格模式的区别

    "use strict"使用"use strict"指令的目的是说明(脚本或函数中)后续的代码将会解析为严格代码(...

网友评论

    本文标题:严格模式与普通模式的区别

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