700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JavaScript严格模式 use strict

JavaScript严格模式 use strict

时间:2019-12-03 17:38:33

相关推荐

JavaScript严格模式 use strict

1.在严格模式下,变量必须显示声明(var/let/const),直接给变量赋值,不会隐式创建全局变量

(function(){//非严格模式a = 10;console.log(a); //10})();(function(){"use strict"; //严格模式b = 10; //ReferenceError: b is not definedconsole.log(b);})();(function(){"use strict"; //严格模式var a=b=1;// //ReferenceError: b is not definedconsole.log(a,b)})();

2.在严格模式下,this默认是undefined

(function(){//非严格模式console.log(this); //window})();(function(){"use strict"; //严格模式console.log(this); //undefined})();

3.在严格模式下,不可以在eval参数中定义变量和函数

(function(){//非严格模式var str1 = "var name='Lily';";var str2 = "function fun1(){console.log('hello');}";eval(str1); //这个name定义在了全局,而不是函数内eval(str2);console.log(name); //Lilyfun1(); //hello})();(function(){"use strict"; //严格模式var str1 = "var alias='Lily';";var str2 = "function fun2(){console.log('hello');}";eval(str1);eval(str2);eval("name = 'Bob'"); //修改全局变量nameconsole.log(name); //Bobconsole.log(alias); //ReferenceError: alias is not definedfun2(); //ReferenceError: fun is not defined})();

4.在严格模式下,有名参数是arguments参数的静态副本,而非引用。

(function(){//非严格模式var name = "Bob";test(name);function test(alias){alias = "Lily";console.log(alias); //Lilyconsole.log(arguments[0]); //Lily}})();(function(){"use strict"; //严格模式var name = "Bob";test(name);function test(alias){alias = "Lily";console.log(alias); //Lilyconsole.log(arguments[0]); //Bob}})();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。