一:什么是JS严格模式
JS的严格模式(strict mode)是一种JS执行模式,它提供了更严格的JS语法和错误检查,有助于消除一些常见的JS代码问题,并提高代码质量。
二:怎么使用JS严格模式
我们只需要在作用域的顶部写下如下的代码,即就会在该语句所在的作用域下开启对应的严格模式
’use strict‘
三:JS严格模式和非严格模式的区别
- 对未声明的变量赋值将导致错误。
- 对象、函数和变量都不能重复命名。
- 函数必须声明在顶部。
- 禁止使用
with
语句。 - 在函数内部,
this
的值不再是全局对象。 - 禁止删除变量、函数、arguments。
相关的例子如下
首先我们无法在严格模式下进行delete操作,这种是在编译都不会通过的,即但我们使用delete是,会报错 delete' cannot be called on an identifier in strict mode.javascript
'use strict'
a = '12312' //在严格模式下,不能使用未定义的变量,但在非严格模式下这样的话就会默认创建一个全局变量
console.log(a);
//在严格模式下,定义函数的形参不能相同,
function add(x, x, x) {
a = '123'
// 在严格模式下, 自执行函数(默认绑定)会指向undefined
// 之前编写的代码中, 自执行函数我们是没有使用过this直接去引用window
console.log(this);
console.log(a);
}
add()
然后我们运行上述代码 ,则会发现会出现相应的报错,首先在严格模式下我们不能使用未定义的变量。即在严格模式下这种未定义就赋值的写法是不被允许的,而在非严格模式下会创建一个age全局变量 。对应提示则在上述中有所阐述。
虽然严格模式下要求我们也变得严格了很多,但是也让我们出错的概率变小了,例如使用未申明的变量的时候会提示我们,这样在开发的过程中我们也减少了这种错误。编写代码的风格得到了改善。