标签:
许多js引擎支持const关键字定义变量,但ECMAScript标准并没有定义任何关于const关键字的语义和行为。此外,在不同的实现之间,const关键字的行为也是不一样的。
在某些情况下,const关键字修饰的变量不能被更新:
1 const PI = 3.14.592653589793; 2 PI = "modified"; 3 PI; //3.14.592653589793
而其他的实现只是简单地将const视为var的代名词:
const PI = 3.14.592653589793; PI = "modified"; PI; //"modified"
ES5引入了另一种版本控制的考量——严格模式(strict mode)。此特性允许你选择在受限制的js版本中禁止使用一些js语言中问题较多或容易出错的特性。由于其语法设计向后兼容,因此即使在那些没有实现严格模式检查的环境中仍可以执行严格代码。
在程序中启用严格模式的方式是在程序的最开始增加一个特定的字符串字面量"use strict",同样,你也可以在函数体的开始加入这句指令以启用该函数的严格模式。
function f(x){ "use strict"; //... }
如果你没有在es5下面做过测试,编写代码运行在es5环境中就很容易出错
function f(x){ "use strict"; var argments = []; //error:redefinition of argments }
在严格模式下,不允许重定义argments变量。但没有实现严格模式检查的环境会接受这段代码,所以在实现es5的产品环境中将导致程序出错。
标签:
原文地址:http://www.cnblogs.com/shuang1990/p/5948086.html