网页前端后台技巧(CSS+HTML)js

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

2019-10-21  本文已影响0人  Nice先生的狂想曲

前言

在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(){}
}
上一篇 下一篇

猜你喜欢

热点阅读