es严格模式

一、严格模式的介绍

“严格模式”的设立是为了消除js语法的一些不合理,不严谨的地方,减少一些怪异行为的出现;不再去兼容es3中的一些不规则的语法,使用全新的es5规范,保护代码运行的安全

一样的代码,“严格模式”中,一些在正常模式下可以运行的语句,在严格模式下将不能运行
二、严格模式的调用
es5严格模式启动:"use strict";是一行字符串,不会对不兼容es5语法的浏览器产生影响

  • 全局严格模式
    "use strict";放在脚本文件的首行,那么整个脚本都会以严格模式运行
<script type="text/javascript">
	"use strict";
	console.log("严格模式")
</script>
<script type="text/javascript">
	console.log("正常模式")
</script>
这里代码,前一个script标签是严格模式,后一个不是
  • 局部函数内的严格模式(推荐)
    在一个函数体的第一行加"use strict"; 则这个函数体处于严格模式
<script type="text/javascript">
	function fn() {
		"use strict";
		console.log("严格模式')
	}
</script>
	1.变量在赋值前必须声明
	2.局部this不会去指向window,赋值什么就指向什么,无new就报错
	3.拒绝重复属性和参数
	4.不支持with  : 改变当前的ao    代码简化     效率丧失,作用域链被修改
	5.严格模式下无法删除变量
	6.禁止在函数内部遍历调用栈
	7.严格模式新增了一些保留字:implements, interface, let, package, private, protected, public, static, yield。使用这些作为变量名会报错

8.不允许在非函数的代码块内声明函数。

"use strict";
  if (true) {
    function f() { } // 语法错误
  }
  for (var i = 0; i < 5; i++) {
    function f2() { } // 语法错误
  }
发布了25 篇原创文章 · 获赞 1 · 访问量 612

猜你喜欢

转载自blog.csdn.net/qq_41238274/article/details/103645375