JavaScript 常見(jiàn)錯(cuò)誤十:忽略 “strict mode”的作用

2021-09-18 15:59 更新

“strict mode” 是一種更加嚴(yán)格的代碼檢查機(jī)制,并且會(huì)讓你的代碼更加安全。當(dāng)然,不選擇這個(gè)模式并不意味著是一個(gè)錯(cuò)誤,但是使用這個(gè)模式可以確保你的代碼更加準(zhǔn)確無(wú)誤。

下面我們總結(jié)幾條“strict mode”的優(yōu)勢(shì):

  1. 讓Debug更加容易:在正常模式下很多錯(cuò)誤都會(huì)被忽視掉,“strict mode”模式會(huì)讓Debug極致更加嚴(yán)謹(jǐn)。

  2. 防止默認(rèn)的全局變量:在正常模式下,給一個(gè)為經(jīng)過(guò)聲明的變量命名將會(huì)將這個(gè)變量自動(dòng)設(shè)置為全局變量。在strict模式下,我們?nèi)∠诉@個(gè)默認(rèn)機(jī)制。

  3. 取消this的默認(rèn)轉(zhuǎn)換:在正常模式下,給this關(guān)鍵字指引到null或者undefined會(huì)讓它自動(dòng)轉(zhuǎn)換為全局。在strict模式下,我們?nèi)∠诉@個(gè)默認(rèn)機(jī)制。

  4. 防止重復(fù)的變量聲明和參數(shù)聲明:在strict模式下進(jìn)行重復(fù)的變量聲明會(huì)被抱錯(cuò),如 (e.g., var object = {foo: "bar", foo: "baz"};) 同時(shí),在函數(shù)聲明中重復(fù)使用同一個(gè)參數(shù)名稱也會(huì)報(bào)錯(cuò),如 (e.g., function foo(val1, val2, val1){}),

  5. 讓eval()函數(shù)更加安全。

  6. 當(dāng)遇到無(wú)效的delete指令的事后報(bào)錯(cuò):delete指令不能對(duì)類中未有的屬性執(zhí)行,在正常情況下這種情況只是默默地忽視掉,而在strict模式是會(huì)報(bào)錯(cuò)的。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)