相信大家都不陌生這行代碼吧:
'use strict';//在js最上方添加這行代碼,瀏覽器就會(huì)開(kāi)啟嚴(yán)格模式;
它代表
嚴(yán)格模式;針對(duì)
舊版本的古老瀏覽器,它并不認(rèn)識(shí),會(huì)把'use strict';當(dāng)做一個(gè)字符串語(yǔ)句執(zhí)行,建議你盡快升級(jí)你的瀏覽器;現(xiàn)代瀏覽器,都支持strict模式,一旦它執(zhí)行到這行代碼,就會(huì)開(kāi)啟strict模式運(yùn)行javascript;strict模式下運(yùn)行的JavaScript,強(qiáng)制使用var來(lái)聲明變量,未使用var聲明變量就使用的,將導(dǎo)致ReferenceError運(yùn)行錯(cuò)誤;javascript在
設(shè)計(jì)之處,最致命的的錯(cuò)誤就是:不強(qiáng)制要求使用var來(lái)聲明變量,當(dāng)然當(dāng)初的設(shè)計(jì)初衷是為了方便初學(xué)者的學(xué)習(xí),但在后來(lái)的實(shí)驗(yàn)中,帶來(lái)了諸多問(wèn)題;未使用var聲明就使用的變量,會(huì)被自動(dòng)聲明為全局變量,但是如果在同一頁(yè)面出現(xiàn)多個(gè)同名的變量時(shí),變量之間就會(huì)相互影響,也無(wú)法調(diào)試;在
嚴(yán)格模式下,使用var聲明的變量則不是全局變量,它的范圍被限制在該變量被聲明的函數(shù)體內(nèi),同名變量在不同的函數(shù)體內(nèi)互不沖突;