正在回答 回答被采纳积分+1
2回答
樱桃小胖子
2019-08-03 19:20:22
严格模式有以下特点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <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> |
因为有这些限制,所以一般小企业的开发的时候并不会考虑使用严格模式哦
希望可以帮到你!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧