# Strict 嚴格模式 ###### tags: `Javascript` 嚴格模式要求開發者以更正規的方式進行開發,開啟嚴格模式後將帶來以下改變。 1. 顯示原本被隱藏的錯誤。 2. 修正阻礙Javascript引擎進行最佳化的錯誤。 (相同程式碼在嚴格模式下,有時能運行的比一般模式來的快) 4. 禁止使用可能被ES未來版本定義的語法。 :::danger 警告:並非所有瀏覽器都支援嚴格模式,若不支援仍會忽略且正常執行。 ::: ## Why Javascript相較於其他語言來說非常不嚴謹,以致於開發者可以使用這些不嚴謹的語法進行開發,然而這些語法將可能在未來帶來錯誤,以嚴格模式開發則可以避免上述情況發生,以下將列舉五點於嚴格模式中被禁止的狀況作為範例說明。 1. 禁止直接定義未宣告的變量。 2. 禁止使用delete。 3. 禁止宣告eval、arguments。 4. 禁止使用this指向全域。 5. 禁止重複變數 ## How 全域 ```javascript! <script> 'use strict'; ... </script> ``` 局域 ```javascript! <script> function name(){ 'use strict'; ... } </script> ``` ## When 使用嚴格模式將對開發模式帶來極大的改變,==因此只建議於新專案中使用==,否則將有可能導致專案無法運作。