前言
好的,終於又回到主線了,趕緊把這個坑填好。這篇主要是介紹關於 JavaScript 的嚴謹模式 (Strict mode),當開啟這個模式後,JavaScript 的部分行為就會比較不一樣了,就讓我們一塊來看看吧。
嚴謹模式 (Strict mode)
JavaScript 的特性就是比較彈性自由,但為人詬病的也是因為太過彈性自由導致缺乏規範,讓沒有經驗的開發者很容易就寫出預料外的 BUG。
而嚴謹模式就是在告訴 JavaScript 要用比較多的規範、限制來編譯這些程式碼,雖然這沒辦法完全改變 JavaScript 過於自由的問題,但還是幫助我們避免一些奇怪的錯誤。
- 例如變數打錯字的問題
1
2
3var person;
persom = {};
console.log(persom);
像是把 person
打成 persom
的錯誤, JavaScript 會認為這是對的。
而這麼做不會錯誤的原因是,JavaScript 把 persom
設定為 全域 window
物件內的屬性,顯然地這並不是我們所預想的樣子。
因此我們需要告訴 JavaScript 打開嚴謹模式。
1 | 'use strict' |
當然嚴謹模式能做的不只這些,更多特性可以到 MDN 的文件查看:
全域、個別使用嚴謹模式
嚴謹模式允許全域使用以及個別地在函式使用,使用方法很簡單,就只需要在 JavaScript 檔案的第一行或者是在函式內的第一行內宣告使用即可。
全域使用嚴謹模式
1 | 'use strict' |
函式個別使用嚴謹模式
1 | function test(){ |
嚴謹模式似乎很少被使用
因為嚴謹模式並不是必要的,這只是一個額外的功能,而且並不是每個 JavaScript 引擎的嚴謹模式特性表現都一樣,因此在使用上會有比較多的限制。
但如果我們仍然希望讓 JavaScript 更嚴格,可以試著使用 ESlint 配合 TypeScript 讓程式碼的品質更上一層樓。