一文搞懂:JS严格模式“use strict”

JS的严格模式在ES5中引入,通过usestrict启用,增强了语法要求,如需先声明变量,禁止使用with语句,不允许写入只读属性等。严格模式有助于避免一些潜在错误,但也限制了JS的灵活性。可以通过检查代码首行或AST中的Directive属性来判断是否启用。
摘要由CSDN通过智能技术生成

什么是JS的严格模式

JS严格模式概念是在ES5中引入的,在此模式下,JS对语法的要求会变的严格,某些不太严谨的代码在严格模式下将不能运行。

如何启用严格模式

只需要JS代码的起始添加 "use strict"即可。如:

"use strict";
abc = " http://jshaman.com";
console.log(abc);

如此执行便会报错,因为使用变量时没有事先声明。

注意:

如果将 "use strict"; 指令添加到代码第一行,则表示整个JS代码都会处于严格模式。
而如果只在函数的第一行代码中添加,则表示只在该函数中启用严格模式。

严格模式的限制

1、不允许使用未声明的变量;
2、不允许删除变量或函数;
3、函数中不允许有同名的参数;
4、eval 语句的作用域是独立的;
5、不允许使用 with 语句;
6、不允许写入只读属性;
7、不允许使用八进制数;
8、不能在 if 语句中声明函数;
9、禁止使用 this 表示全局对象。

严格模式的影响

客观的说,严格模式会使代码更规范,不易出现不规范书写带来的BUG隐患。但对于JS的灵活、随意的优势,也造成了一些影响。

如何判断处于严格模式下

启用严格模式后,代码中除了新增”use strict“外,无任何显式变化。

从代码中判断是否存在此字符,可以得知是否启用了严格模式。

此外,从AST中还可以看到代码的抽象语法树中新增了Directive属性,因此也可以判断此属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值