iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
自我挑戰組

菜鳥前端修練之旅系列 第 23

Day 23 | use strict

  • 分享至 

  • xImage
  •  

use strict 是 ES5 中新增的「嚴格模式」,讓我們的 JavaScript 程式碼被嚴格對待。

使用 use strict

使用上只要將 use strict 放在整支程式的第一行即可:

"use strict"

// do some things

或是只想要某個 function 中進入嚴格模式:

function fn(){
    "use strict"
    // ...
}

需要注意的是,如果同時引入了多支檔案,只要最上方的那支檔案有宣告嚴格模式,以下的都會被以嚴格模式來看待。

嚴格在哪裡?

宣告嚴格模式後,以下的行為都會被禁止:

未宣告就定義變數

"use strict"

number = 1;  // 未宣告

function fn(){
    str = "hello"; // 未宣告
};

刪除變數或函式

禁止使用 delete 刪除變數或函式。

"use strict"

const number = 1;
delete number; // 出錯

delete Object.prototype; // 出錯

參數名稱重複


"use strict"

function fn(number, number) {
    // ....
}

得到錯誤:

使用八進制

"use strict";

var x = 010; 

得到錯誤:

不允許使用 eval、arguments 當作變數名稱

"use strict";

const eval = 1; // 出錯
const arguments = 1; // 出錯

禁止使用 with

"use strict";

with (Math){
    x = cos(2)
};
// 出錯
// 'with' statements are not allowed in strict mode.

保留關鍵字

以下的單字不可當作變數名稱來使用:
implementsinterfaceletpackageprivateprotectedpublicyieldstatic。


看了蠻多文章,不少人都比較少使用 use strict,都是 ESLint 比較多。

參考資料


上一篇
Day 22 | Proxy
下一篇
Day 24 | !DOCTYPE
系列文
菜鳥前端修練之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言