学习打卡 JavaScript严格模式

        ECMAScript5开始引入了严格模式strict mode)概念。
        严格模式是为JS定义了一种不同的解析与执行模式;在严格模式下,ECMA3中的一些不确定行为将得到处理,而且对某些不安全操作也会抛出错误;
        若在整个脚本中启用严格模式,可以在顶部添加如下代码:

	"use strict"

        按照JS高级程序设计第三版说法,这句代码相当于一个编译指示(pragma),用于告诉支持的JS引擎切换到严格模式——这是为不破坏ECMA3语法而特定选定的语法;
        这条编译指示也可以写在函数上方,即这个作用域下的所有代码都遵从严格模式;
        见以下两组代码

	function m1(){
		max=10;	//如果在给变量赋值时,没用使用var声明该变量,那么该变量会被视作为全局变量
	}
	m1();
	console.log(max);//10

        未给function添加严格模式,max被视作全局变量正常输出值;

	function m1(){
		"use strict";
		max=10;
	}
	m1();
	console.log(max);//Uncaught ReferenceError: max2 is not defined

        启用严格模式后,因为max变量未用var正常声明,浏览器报错,提示max变量未定义;
        【注】严格模式下,JS的执行结果将会有很大的不同,
        不要轻易在全局范围内增加严格模式,建议在函数作用域内使用;

猜你喜欢

转载自blog.csdn.net/weixin_44990584/article/details/106215876