js嚴(yán)格模式

1.為什么用嚴(yán)格模式
  • 消除Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處饲趋,減少一些怪異行為;
  • 消除代碼運行的一些不安全之處拐揭,保證代碼運行的安全;
  • 提高編譯器效率奕塑,增加運行速度堂污;
  • 為未來新版本的Javascript做好鋪墊。
2. 進(jìn)入標(biāo)志
"use strict";
3.如何調(diào)用
//針對單個腳本
<script>
    "use strict";
    console.log("這是嚴(yán)格模式龄砰。");
</script>
//針對單個函數(shù)
function strict(){
    "use strict";
    return "這是嚴(yán)格模式盟猖。";
}
4.嚴(yán)格模式對Javascript的語法和行為,都做了一些改變换棚。

4.1 全局變量顯式聲明
在正常模式中式镐,如果一個變量沒有聲明就賦值,默認(rèn)是全局變量固蚤。嚴(yán)格模式禁止這種用法碟案,全局變量必須顯式聲明。

"use strict";
 v = 1; // 報錯颇蜡,v未聲明
 for(i = 0; i < 2; i++) { // 報錯价说,i未聲明
 }

4.2 禁止this關(guān)鍵字指向全局對象

function f(){
    return !this;
} // 返回false,因為"this"指向全局對象风秤,"!this"就是false
function f(){ 
    "use strict";
    return !this;
} // 返回true鳖目,因為嚴(yán)格模式下,this的值為undefined缤弦,所以"!this"為true领迈。

因此,使用構(gòu)造函數(shù)時,如果忘了加new狸捅,this不再指向全局對象衷蜓,而是報錯。

function f(){
    "use strict";
    this.a = 1;
};
f();// 報錯尘喝,this未定義

4.3禁止刪除變量
嚴(yán)格模式下無法刪除變量磁浇。只有configurable設(shè)置為true的對象屬性,才能被刪除朽褪。

"use strict";
 var x;
 delete x; // 語法錯誤
 var o = Object.create(null, {'x': {
     value: 1,
     configurable: true
 }});
delete o.x; // 刪除成功

4.4對象不能有重名的屬性
正常模式下置吓,如果對象有多個重名屬性,最后賦值的那個屬性會覆蓋前面的值缔赠。嚴(yán)格模式下衍锚,這屬于語法錯誤。

"use strict";
var o = {
    p: 1,
    p: 2
}; // 語法錯誤

4.5函數(shù)不能有重名的參數(shù)
正常模式下嗤堰,如果函數(shù)有多個重名的參數(shù)戴质,可以用arguments[i]讀取。嚴(yán)格模式下踢匣,這屬于語法錯誤置森。

"use strict";
function f(a, a, b) { // 語法錯誤
    return ;
}

詳見阮一峰的Javascript 嚴(yán)格模式詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市符糊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呛凶,老刑警劉巖男娄,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漾稀,居然都是意外死亡模闲,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門崭捍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尸折,“玉大人,你說我怎么就攤上這事殷蛇∈导校” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵粒梦,是天一觀的道長亮航。 經(jīng)常有香客問我,道長匀们,這世上最難降的妖魔是什么缴淋? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上重抖,老公的妹妹穿的比我還像新娘露氮。我一直安慰自己,他們只是感情好钟沛,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布畔规。 她就那樣靜靜地躺著,像睡著了一般讹剔。 火紅的嫁衣襯著肌膚如雪油讯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天延欠,我揣著相機與錄音陌兑,去河邊找鬼。 笑死由捎,一個胖子當(dāng)著我的面吹牛兔综,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狞玛,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼软驰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了心肪?” 一聲冷哼從身側(cè)響起锭亏,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎硬鞍,沒想到半個月后慧瘤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡固该,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年锅减,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伐坏。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡怔匣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桦沉,到底是詐尸還是另有隱情每瞒,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布纯露,位于F島的核電站独泞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苔埋。R本人自食惡果不足惜懦砂,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荞膘,春花似錦罚随、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屠升,卻和暖如春潮改,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腹暖。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工汇在, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脏答。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓糕殉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親殖告。 傳聞我的和親對象是個殘疾皇子阿蝶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、概述 除了正常運行模式黄绩,ECMAscript 5添加了第二種運行模式:"嚴(yán)格模式"(strict mode)羡洁。...
    才気莮孒閱讀 194評論 0 1
  • 通過嚴(yán)格模式,可以在函數(shù)內(nèi)部 選擇進(jìn)行較為嚴(yán)格的全局或局部的錯誤條件檢測爽丹。使用嚴(yán)格模式的好處是可以提早知道代碼中存...
    oWSQo閱讀 498評論 0 0
  • 'use strict' 是在一個嚴(yán)格的模式下 在正常模式中筑煮,如果一個變量沒有聲明就賦值,默認(rèn)是全局變量习劫。嚴(yán)格模式...
    FConfidence閱讀 271評論 0 0
  • "use strict"使用"use strict"指令的目的是說明(腳本或函數(shù)中)后續(xù)的代碼將會解析為嚴(yán)格代碼(...
    80bb3ef13dea閱讀 1,486評論 0 6
  • 認(rèn)識你自己! 好吧嚼隘,我承認(rèn)今天我們得來講講自我認(rèn)識這件事兒诽里,我們大多數(shù)人一生都在尋找我是誰這個問題的答案,今天我們...
    檸檬樹下檸檬果閱讀 389評論 0 0