摘要:嚴(yán)格模式的限制不允許使用未聲明的變量報(bào)錯(cuò)未定義報(bào)錯(cuò)未定義不允許刪除變量或?qū)ο蟆7祷兀驗(yàn)橹赶蛉謱?duì)象,就是返回,因?yàn)閲?yán)格模式下,的值為,所以為。
嚴(yán)格模式優(yōu)勢(shì):
消除Javascript語(yǔ)法的一些不合理、不嚴(yán)謹(jǐn)之處,減少一些意外情況出現(xiàn);
消除代碼運(yùn)行的一些不安全之處,保證代碼運(yùn)行的安全;
提高編譯器效率,增加運(yùn)行速度;
注意,同樣的代碼,在"嚴(yán)格模式"中,可能會(huì)有不一樣的運(yùn)行結(jié)果;一些在"正常模式"下可以運(yùn)行的語(yǔ)句,在"嚴(yán)格模式"下將不能運(yùn)行。
"use strict"; x = 3.14; // 報(bào)錯(cuò) (x 未定義) "use strict"; x = {p1:10, p2:20}; // 報(bào)錯(cuò) (x 未定義)不允許刪除變量或?qū)ο蟆?/b>
"use strict"; var x = 3.14; delete x; // 報(bào)錯(cuò)不允許刪除函數(shù)。
"use strict"; function x(p1, p2) {}; delete x; // 報(bào)錯(cuò)不允許變量重名:
"use strict"; function x(p1, p1) {}; // 報(bào)錯(cuò)不允許使用八進(jìn)制:
"use strict"; var x = 010; // 報(bào)錯(cuò)不允許使用轉(zhuǎn)義字符:
"use strict"; var x =