當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript严格模式 use strict
生活随笔
收集整理的這篇文章主要介紹了
JavaScript严格模式 use strict
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.在嚴格模式下,變量必須顯示聲明(var/let/const),直接給變量賦值,不會隱式創(chuàng)建全局變量
(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參數(shù)中定義變量和函數(shù)
(function(){//非嚴格模式var str1 = "var name='Lily';";var str2 = "function fun1(){console.log('hello');}";eval(str1); //這個name定義在了全局,而不是函數(shù)內(nèi)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.在嚴格模式下,有名參數(shù)是arguments參數(shù)的靜態(tài)副本,而非引用。
(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} })(); 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的JavaScript严格模式 use strict的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 认清js中var a=b=1和var a
- 下一篇: 启动webpack失败 events.j