因为JS语法不严谨,例如上节说到的变量提升,可以先使用在声明,这时JS引入了严格模式。
JS自带一种模式,JavaScript的严格模式(Strict Mode)是一种对JavaScript解析和执行的一种限制模式。通过启用严格模式,可以帮助开发者避免一些常见的错误,并且使代码执行更加规范。
JavaScript的严格模式(Strict Mode)是一种对JavaScript解析和执行的一种限制模式。通过启用严格模式,可以帮助开发者避免一些常见的错误,并且使代码执行更加规范。
要在JavaScript中启用严格模式,可以在脚本文件或函数的顶部添加以下语句:
"use strict";
例如:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>www.dotcpp.com </title> </head> <body> <script> "use strict"; x = 'www.dotcpp.com'; // 此处报错:Uncaught ReferenceError: x is not defined at www.dotcpp.com.html:10:11 console.log(x); </script> </body> </html>
或者在函数体内部的第一行添加该语句。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript</title> </head> <body> <script> x = 'www.dotcpp.com'; console.log(x); function Hello(){ 'use strict'; str = 'welcome www.dotcpp.com'; // 调用 Hello() 函数在此处报错:Uncaught ReferenceError: str is not defined at Hello (www.dotcpp.com.html:13:17) at www.dotcpp.com.html:16:9 console.log(str); } Hello(); </script> </body> </html>
严格模式下的一些特点包括:
1. 变量必须先声明后使用:在严格模式下,变量必须通过var、let或const关键字进行声明,否则会抛出ReferenceError。
2. 禁止删除变量:在严格模式下,使用delete操作符删除变量会报错。
3. 函数中的this值:在严格模式下,函数调用中的this值不会被默认绑定到全局对象(如window),而是为undefined。需要显式绑定this值。
4. 禁止使用八进制字面量:在严格模式下,八进制字面量(以0开头)将被视为无效的,并导致SyntaxError。
5. 禁止使用eval和arguments作为变量名:在严格模式下,eval和arguments被彻底禁止作为变量、函数或参数的名称。
启用严格模式可以提高代码质量并捕获潜在的错误。建议在JavaScript开发中始终使用严格模式来加强代码的规范性和可靠性。
这节我们简单介绍了严格模式对编码的影响,下节我们将具体举例在严格模式下的报错情况。
本文固定URL:https://www.dotcpp.com/course/1299