js中的严格模式 “use strict“ 2021.11.10

es5 新增的严格模式,就是将代码 放到一个更为安全、高效的环境中来运行 - 有规则验证

1、如何加载严格模式

通过声明 "use strict" 字符串的声明,一般三种场景:

1)script标签内声明 表示 该段代码 限定在严格模式中;

2)function内声明,表示 函数体内是严格模式环境;

3)脚本文件头部声明,表示 该文件运行严格模式中;

对于严格模式具体限定的行为主要有以下部分:

// ① 变量必须声明后再使用,就是不能省略var

 

// ② 函数的参数不能有同名属性,否则报错

// ③ 不能使用with语句

 

// ④ 不能对只读属性赋值,否则报错

 

// ⑤ 不能使用前缀 0 表示八进制数,否则报错

// ⑥ 不能删除不可删除的属性,否则报错 (同第4条)

// ⑦ 不能删除变量delete prop,会报错,只能删除属性delete global[prop]

// ⑧ eval不会在它的外层作用域引入变量

// 在非严格模式下 eval可以用来编译一段js代码

 

 

// ⑨ eval和arguments不能被重新赋值

// ⑩ arguments不会自动反映函数参数的变化

// ⑪ 不能使用arguments.callee

// ⑫ 不能使用arguments.caller

 

// ⑬ 禁止this指向全局对象(也就是window)

// ⑭ 不能使用fn.caller和fn.arguments获取函数调用的堆栈

// ⑮ 增加了保留字(比如protected、static和interface)

// ⑯ 其中,尤其需要注意this的限制。ES6 模块之中,顶层的this指向undefined,即不应该在顶层代码使用this。

おすすめ

転載: blog.csdn.net/weixin_50163576/article/details/121255117