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

前言

在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(){}
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容