JavaScript中的严格模式是什么?

严格模式

ECMAScript 5将严格模式引入javascript。使用严格模式的javascript静默错误很容易检测到,因为它们会引发错误。这使javascript调试更加容易,并有助于开发人员避免不必要的错误。

由于严格模式在遇到未声明的变量时会引发异常,因此将大大减少内存泄漏。严格模式可以通过在需要严格模式的代码前使用“ use strict”来启用。 

在下面的示例中,使用了两个变量,一个在函数外部,另一个在函数内部。未声明在函数外部使用的变量,而在函数内部声明的变量使用var关键字声明。在函数内部使用严格模式不会引发任何错误,因为同时声明了变量,因为没有使用严格模式,所以将显示函数外部变量中的值。 

示例1

<html>
<body>
<script>
   myString1 = "non-strict mode will allow undeclared variables"
   document.write(myString1);
   document.write("</br>");
   function myFun(){
      "use strict"
      var myString2 = "Strict mode will allow declared variables"
      document.write(myString2);
   }
   myFun();
</script>
</body>
</html>

输出结果
non-strict mode will allow undeclared variables
Strict mode will allow declared variables

在以下示例中,未在函数内部声明变量,而是应用了严格模式。因此,该变量内的值将不会执行并引发错误。我们可以在浏览器控制台中找到错误。

示例2

<html>
<body>
<script>
   myString1 = "non-strict mode will allow undeclared variables"
   document.write(myString1);
   document.write("</br>");
   function myFun(){
      "use strict"
      myString2 = "Strict mode will allow declared variables"
      document.write(myString2);
   }
   myFun();
</script>
</body>
</html>

输出结果
non-strict mode will allow undeclared variables