文章主要介绍JavaScript严格模式,包括启用原因、方式以及需避开的常见陷阱,助力开发者写出更健壮代码。
1. 启用原因:将普通JavaScript中的“静默错误”变为抛出错误,有助于编写健壮代码;修复阻碍JavaScript引擎优化的缺陷。
2. 启用方式:可在脚本开头添加"use strict";全局启用;也能在函数内部开头添加"use strict";,仅对该函数启用。
3. 常见陷阱及正确做法
◦ 未声明变量:严格模式下给未声明变量赋值会报错,应始终用var、let或const声明变量。
◦ 删除变量或函数:严格模式禁止删除变量和函数,不可执行此类操作。
◦ 重复参数名:函数参数名不能重复,要确保唯一性。
◦ 八进制语法:严格模式下010这样的八进制语法无效,需用0o前缀表示八进制,如0o10。
◦ with语句:严格模式不允许使用,应明确指定对象,如var x = Math.cos(Math.PI);。
◦ 赋值给只读属性:不能给只读属性赋值,避免此类错误操作。
◦ this的值:严格模式下函数内部this不会默认指向全局对象,使用时需注意其指向变化。