現代 JavaScript 教程 — "use strict" 現代模式

現代模式,"use strict"

長久以來,JavaScript 不斷向前發展且並未帶來任何兼容性問題。新的特性被加入,舊的功能也沒有改變。javascript

這麼作有利於兼容舊代碼,但缺點是 JavaScript 創造者的任何錯誤或不完善的決定也將永遠被保留在 JavaScript 語言中。html

這種狀況一直持續到 2009 年 ECMAScript 5 (ES5) 的出現。ES5 規範增長了新的語言特性而且修改了一些已經存在的特性。爲了保證舊的功能可以使用,大部分的修改是默認不生效的。你須要一個特殊的指令 —— "use strict" 來明確地激活這些特性。java

"use strict"

這個指令看上去像一個字符串 "use strict" 或者 'use strict'。當它處於腳本文件的頂部時,則整個腳本文件都將以「現代」模式進行工做。react

好比:編程

"use strict";

// 代碼以現代模式工做
...
複製代碼

稍後咱們纔會學習函數(一種組合命令的方式)。瀏覽器

但咱們能夠提早了解一下,"use strict" 能夠被放在函數主體的開頭,而不是整個腳本的開頭。這樣則能夠只在該函數中啓用嚴格模式。但一般人們會在整個腳本中啓用嚴格模式。微信

確保 "use strict" 出如今最頂部

請確保 "use strict" 出如今腳本的最頂部,不然嚴格模式可能沒法啓用。函數

這裏的嚴格模式就沒有被啓用:學習

alert("some code");
// 下面的 "use strict" 會被忽略,必須在最頂部。
 "use strict";

// 嚴格模式沒有被激活
複製代碼

只有註釋能夠出如今 "use strict" 的上面。測試

沒有辦法取消 use strict

沒有相似於 "no use strict" 這樣的指令可使程序返回默認模式。

一旦進入了嚴格模式,就沒有退路了。

瀏覽器控制檯

之後,當你使用瀏覽器控制檯去測試功能時,請注意 use strict 默認不會被啓動。

有時,使用 use strict 會產生一些不同的影響,你會獲得錯誤的結果。

你能夠試試按下 key:Shift+Enter 去輸入多行代碼,而後將 use strict 置頂,就像這樣:

'use strict'; <Shift+Enter 換行> // ...你的代碼 <按下 Enter 以運行> 複製代碼

它在大部分瀏覽器中都有效,像 Firefox 和 Chrome。

若是依然不行,那確保 use strict 被開啓的最可靠的方法是,像這樣將代碼輸入到控制檯:

(function() {
 'use strict';

  // ...你的代碼...
})()
複製代碼

老是使用 "use strict"

咱們還沒說到使用 "use strict" 與「默認」模式的區別。

在接下來的章節中,當咱們學習語言功能時,咱們會標註嚴格模式與默認模式的差別。幸運的是,差別其實沒有那麼多。而且這些差別可讓咱們更好地編程。

當前,通常來講了解這些就夠了:

  1. "use strict" 指令將瀏覽器引擎轉換爲「現代」模式,改變一些內建特性的行爲。咱們會在以後的學習中瞭解這些細節。
  2. 嚴格模式經過將 "use strict" 放置在整個腳本或函數的頂部來啓用。一些新語言特性諸如 "classes" 和 "modules" 也會自動開啓嚴格模式。
  3. 全部的現代瀏覽器都支持嚴格模式。
  4. 咱們建議始終使用 "use strict" 啓動腳本。本教程的全部例子都默認採用嚴格模式,除非特別指定(很是少)。

本教程首發於微信公衆號「技術漫談」。


現代 JavaScript 教程:開源的現代 JavaScript 從入門到進階的優質教程。React 官方文檔推薦,與 MDN 並列的 JavaScript 學習教程。

在線免費閱讀:zh.javascript.info/


掃描下方二維碼,關注微信公衆號「技術漫談」,訂閱更多精彩內容。

相關文章
相關標籤/搜索