use strict的作用
来源:2-10 将显示隐藏封装成模块--初探
JJJustin
2019-08-03 15:09:35

2回答
樱桃小胖子
2019-08-03
严格模式有以下特点:
<script>
//1.不允许使用隐式声明的变量,会报错。
a=123;
//2.不允许函数有相同的参数,对象有相同的属性。
var a=function(a,a){
alert(123);
};
"use strict";
var o = {
p: 1,
p: 2
}; // 语法错误
//3.不允许对只读属性赋值:
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14; // 报错
//4.禁止this关键字指向全局对象,也就是说this不能指向window顶层对象。
function f(){
return !this;
}// 返回false,因为"this"指向全局对象,"!this"就是false
function f(){
"use strict";
return !this;
}// 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。
//5.不允许使用保留关键字(implements, interface, let, package, private, protected, public, static, yield)作为变量名。js一直处于发展中,这些保留关键字将来可能用来实现相应的功能。所以不能使用。
//6.创设eval作用域,在作用域 eval() 创建的变量不能在外部被调用
"use strict";
eval ("var x = 2");
alert (x);
</script>因为有这些限制,所以一般小企业的开发的时候并不会考虑使用严格模式哦
希望可以帮到你!
好帮手慕言
2019-08-03
同学你好,use strict’是"严格模式",这种模式使Javascript在更严格的条件下运行。它的作用有:
(1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
(2)消除代码运行的一些不安全之处,保证代码运行的安全;
比如:在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。
正常模式下:

控制台:

严格模式下:

控制台:
就会报错:a变量未定义。
严格模式更规范化一些。
如果帮助到了你,欢迎采纳~祝学习愉快~
相似问题
回答 1
回答 2