JavaScript学习初阶14-严格模式

it2022-05-08  7

严格模式("use strict"指令)

“use strict” 是 JavaScript 1.8.5 中的新指令(ECMAScript version 5), 它不算一条语句,而是一段文字表达式,更早版本的 JavaScript 会忽略它, “use strict”; 的作用是指示 JavaScript 代码应该以“严格模式”执行。

严格模式的使用

在脚本或函数的开头添加 “use strict”; 来声明严格模式,在脚本的开头添加严格模式有全局作用域,在函数里会有函数作用域

严格模式中不允许的事项

不声明变量(对象)的情况下使用变量 "use strict"; x = 3.14; // 这将引发错误 //--------------------------------- "use strict"; x = {p1:10, p2:20}; // 这将引发错误 删除变量(或对象),删除函数是不允许的 "use strict"; var x = 3.14; delete x; // 这将引发错误 //--------------------------------- "use strict"; function x(p1, p2) {}; delete x; // 这将引发错误 八进制数值文本是不允许的,转义字符是不允许的 "use strict"; var x = 010; // 这将引发错误 //--------------------------------- "use strict"; var x = \010; // 这将引发错误 重复参数名是不允许的 "use strict"; function x(p1, p1) {}; // 这将引发错误 写入只读属性、写入只能获取的属性、删除不可删除的属性,是不允许的 "use strict"; var obj = {}; Object.defineProperty(obj, "x", {value:0, writable:false}); obj.x = 3.14; // 写入只读属性,会引发错误 //--------------------------------------- "use strict"; var obj = {get x() {return 0} }; obj.x = 3.14; // 写入只能获取的属性,会引发错误 //--------------------------------------- "use strict"; delete Object.prototype; // 删除不可删除的属性,引发错误 with 语句是不允许的 "use strict"; with (Math){x = cos(2)}; // with 语句会引发错误 this关键字没作用 在严格模式下this关键字是undefined

支持严格模式的浏览器

版本 10 以后的 IE版本 4 以后的 Firefox版本 13 以后的 Chrome版本 5.1 以后的 Safari版本 12 以后的 Opera

最新回复(0)