漳州建设银行网站,中企动力简介,营销策略英文,单页营销式网站模板下载使用 use strict 指令
use strict 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句#xff0c;但是是一个字面量表达式#xff0c;在 JavaScript 旧版本中会被忽略。
use strict 的目的是指定代码在严格条件下执行。…使用 use strict 指令
use strict 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一条语句但是是一个字面量表达式在 JavaScript 旧版本中会被忽略。
use strict 的目的是指定代码在严格条件下执行。
严格模式下你不能使用未声明的变量。
支持严格模式的浏览器: Internet Explorer 10 、 Firefox 4 Chrome 13、 Safari 5.1、 Opera 12。
严格模式声明
严格模式通过在脚本或函数的头部添加 use strict; 表达式来声明。
在函数内部声明是局部作用域 (只在函数内使用严格模式)。
为什么使用严格模式:
消除Javascript语法的一些不合理、不严谨之处减少一些怪异行为;消除代码运行的一些不安全之处保证代码运行的安全提高编译器效率增加运行速度为未来新版本的Javascript做好铺垫。
严格模式体现了Javascript更合理、更安全、更严谨的发展方向包括IE 10在内的主流浏览器都已经支持它许多大项目已经开始全面拥抱它。
另一方面同样的代码在严格模式中可能会有不一样的运行结果一些在正常模式下可以运行的语句在严格模式下将不能运行。掌握这些内容有助于更细致深入地理解Javascript让你变成一个更好的程序员。
严格模式的限制
不允许使用未声明的变量对象也是一个变量如x {p1:10, p2:20};
不允许删除变量或对象如var x 3.14;delete x;
不允许删除函数如function x(p1, p2) {};delete x;
不允许变量重名如function x(p1, p1) {};
不允许使用八进制如var x 010;
不允许使用转义字符如var x \010;
不允许对只读属性赋值如Object.defineProperty(obj, x, {value:0, writable:false});
不允许对一个使用getter方法读取的属性进行赋值如obj {get x() {return 0} }
不允许删除一个不允许删除的属性如delete Object.prototype;
变量名不能使用 eval 字符串如var eval 3.14;
变量名不能使用 arguments 字符串如var arguments 3.14;
不允许使用右边这种语句如with (Math){x cos(2)};
由于一些安全原因在作用域 eval() 创建的变量不能被调用如eval (var x 2);alert (x);
禁止this关键字指向全局对象如
// 返回false因为this指向全局对象!this就是false
function f(){ return !this; } // 返回true因为严格模式下this的值为undefined所以!this为true。
function f(){ use strict; return !this; } //因此使用构造函数时如果忘了加newthis不再指向全局对象而是报错
function f(){use strict;this.a 1;
};
f();// 报错this未定义
保留关键字
为了向将来Javascript的新版本过渡严格模式新增了一些保留关键字
implementsinterfaceletpackageprivateprotectedpublicstaticyield