JavaScript-嚴格模式"use strict"

在 JavaScript 中有許多鬆散的寫法,雖然因此讓 JS 的彈性受到讚賞,卻也導致 debug 的困難度。 "use strict" 是新加入的標準,目的在於讓「開發具備更穩定的 JS」更容易,當開發者使用不穩定的語法時,即會跳出警告,讓開發者避免這些寫法。

使用 strict mode (嚴格模式) 這個功能,會強迫開發者在開發過程中更為謹慎,用以限制鬆散的 JavaScript 寫法,相比之下也比較不會出錯。

優點與缺點

優點:

  • 撰寫出更為嚴謹的 JS 可以避免不可預知的意外狀況,特別是合作開發時,在 debug 他人撰寫的程式碼會更為簡易。

缺點:

  • 嚴謹模式限制 JS 的彈性
  • 若專案中使用很多第三方撰寫的 plugin 套件,可能因為嚴格模式而無法運作,會需要修改很多程式

建議及解套方法:
嚴格模式除了可以寫在全域,也可以用在 function 中,如此一來就不會全域都嚴謹模式,避免影響既有的程式碼或 plugin 套件。

使用方式

全域

"use strict"直接寫在 JS 全域位置的最上方:

1
2
3
4
5
6
'use strict'; //使用 strict mode (嚴格模式)

function testFun() {
var value = 123;
return value;
}

區域

"use strict"寫在函式的開頭位置:

1
2
3
4
5
6
function testFun() {
'use strict'; //使用 strict mode (嚴格模式)

var value = 123;
return value;
}

如果不是寫在函式的開頭位置,則無效。

1
2
3
4
5
function testFun() {
var value = 123;

('use strict'); //嚴格模式無效
}

使用嚴格模式的受限

  • 變數未宣告直接賦值
  • 物件中有重複的屬性名稱
  • 刪除已經宣告的錯誤
  • 不能使用 ‘with’ 語法
  • argument, eval 不能作為變數名稱
  • 保留字不得作為變數名稱,例:implements, interface, let, package, private, protected, static, yield

瀏覽器支援

  • Chrome13 之後都有支援
  • IE10,11 有支援
  • FF4 有支援
  • Safari5.1 之後有支援
© 2020 Leah's Blog All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero