W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
長久以來,JavaScript 不斷向前發(fā)展且并未帶來任何兼容性問題。新的特性被加入,舊的功能也沒有改變。
這么做有利于兼容舊代碼,但缺點是 JavaScript 創(chuàng)造者的任何錯誤或不完善的決定也將永遠被保留在 JavaScript 語言中。
這種情況一直持續(xù)到 2009 年 ECMAScript 5 (ES5) 的出現(xiàn)。ES5 規(guī)范增加了新的語言特性并且修改了一些已經(jīng)存在的特性。為了保證舊的功能能夠使用,大部分的修改是默認不生效的。你需要一個特殊的指令 —— "use strict"
來明確地激活這些特性。
這個指令看上去像一個字符串 "use strict"
或者 'use strict'
。當(dāng)它處于腳本文件的頂部時,則整個腳本文件都將以“現(xiàn)代”模式進行工作。
比如:
"use strict";
// 代碼以現(xiàn)代模式工作
...
很快我們就會學(xué)習(xí)到函數(shù)(一種組合命令的方式),所以讓我們提前注意一下,"use strict"
可以被放在函數(shù)體的開頭。這樣則可以只在該函數(shù)中啟用嚴格模式。但通常人們會在整個腳本中啟用嚴格模式。
確保 “use strict” 出現(xiàn)在最頂部
請確保 ?
"use strict"
? 出現(xiàn)在腳本的最頂部,否則嚴格模式可能無法啟用。這里的嚴格模式就沒有被啟用:
alert("some code"); // 下面的 "use strict" 會被忽略,必須在最頂部。 "use strict"; // 嚴格模式?jīng)]有被激活
只有注釋可以出現(xiàn)在
"use strict"
的上面。
沒有辦法取消 ?
use strict
?沒有類似于 ?
"no use strict"
? 這樣的指令可以使程序返回默認模式。一旦進入了嚴格模式,就沒有回頭路了。
當(dāng)你使用 開發(fā)者控制臺 運行代碼時,請注意它默認是不啟動 use strict
的。
有時,當(dāng) use strict
會對代碼產(chǎn)生一些影響時,你會得到錯誤的結(jié)果。
那么,怎么在控制臺中啟用 use strict
呢?
首先,你可以嘗試搭配使用 ?Shift+Enter
? 按鍵去輸入多行代碼,然后將 use strict
放在代碼最頂部,就像這樣:
'use strict'; <Shift+Enter 換行>
// ...你的代碼
<按下 Enter 以運行>
它在大部分瀏覽器中都有效,像 Firefox 和 Chrome。
如果依然不行,例如你使用的是舊版本的瀏覽器,那么有一種很丑但可靠的啟用 use strict
的方法。將你的代碼放在這樣的包裝器中:
(function() {
'use strict';
// ...你的代碼...
})()
這個問題的答案好像很顯而易見,但事實并非如此。
有人可能會建議在腳本的最頂部放置 "use strict"
這行代碼…… 但你知道更酷的方式嗎?
現(xiàn)代 JavaScript 支持 “class” 和 “module” —— 高級語言結(jié)構(gòu)(本教程后續(xù)章節(jié)會講到),它們會自動啟用 use strict
。因此,如果我們使用它們,則無需添加 "use strict"
指令。
因此,目前我們歡迎將 "use strict";
寫在腳本的頂部。稍后,當(dāng)你的代碼全都寫在了 class 和 module 中時,你則可以將 "use strict";
這行代碼省略掉。
目前,我們已經(jīng)基本了解了 use strict
。
在接下來的章節(jié)中,當(dāng)我們學(xué)習(xí)語言功能時,我們會看到嚴格模式與舊的模式之間的差異。幸運的是,差異其實沒有那么多。并且,這些差異實際上提升了我們的編程體驗。
本教程的所有例子都默認采用嚴格模式,除非特別指定(非常少)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: