web前端全系列 教程
1839个小节阅读:2243.6k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
除了正常的运行模式,JavaScript 还有第二种运行模式:严格模式(strict mode)。顾名思义,这种模式采用更加严格的 JavaScript 语法。
同样的代码,在正常模式和严格模式中,可能会有不一样的运行结果。一些在正常模式下可以运行的语句,在严格模式下将不能运行。
早期的 JavaScript 语言有很多设计不合理的地方,但是为了兼容以前的代码,又不能改变老的语法,只能不断添加新的语法,引导程序员使用新语法。
严格模式是从 ES5 进入标准的,主要目的有以下几个。
总之,严格模式体现了 JavaScript 更合理、更安全、更严谨的发展方向。
进入严格模式的标志,是一行字符串use strict
xxxxxxxxxx
'use strict';
可以放在两个位置:
use strict
放在脚本文件的第一行,整个脚本都将以严格模式运行use strict
放在函数体的第一行,则整个函数以严格模式运行xxxxxxxxxx
<script>
'use strict';
console.log('这是严格模式');
</script>
xxxxxxxxxx
function strict() {
'use strict';
return '这是严格模式';
}
eval、arguments 不可用作标识名
严格模式下,使用eval
或者arguments
作为标识名,将会报错。下面的语句都会报错
xxxxxxxxxx
'use strict';
var eval = 17;
var arguments = 17;
函数不能有重名的参数
正常模式下,如果函数有多个重名的参数,可以用arguments[i]
读取。严格模式下,这属于语法错误
xxxxxxxxxx
function f(a, a, b) {
'use strict';
return a + b;
}
全局变量显式声明
正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明
xxxxxxxxxx
'use strict';
v = 1; // 报错,v未声明
for (i = 0; i < 2; i++) { // 报错,i 未声明
// ...
}
function f() {
x = 123;
}
f() // 报错,未声明就创建一个全局变量
禁止 this 关键字指向全局对象
禁止使用 with 语句
arguments 不再追踪参数的变化
保留字
为了向将来 JavaScript 的新版本过渡,严格模式新增了一些保留字(implements、interface、let、package、private、protected、public、static、yield等)。使用这些词作为变量名将会报错
xxxxxxxxxx
function package(protected) { // 语法错误
'use strict';
var implements; // 语法错误
}
实时效果反馈
1. 下列那个不是严格模式的设计目的:
A 明确禁止一些不合理、不严谨的语法,减少 JavaScript 语言的一些怪异行为
B 增加更多报错的场合,消除代码运行的一些不安全之处,保证代码运行的安全
C 提高编译器效率,增加运行速度
D 为了减少大家写代码发生错误的概率
答案
1=>D