JavaScript 严格模式
严格模式详解
除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
1. this在严格模式下的表现
全局作用域中函数中的this,不会指向window,此时则是undefined。
2. es6 modules中隐式的使用严格模式
es6 modules中隐式的使用严格模式,所以也会出现this = undefined的情况。
参考资料
代码测试
// 严格模式下
<script>
'use strict';
~function _() {
console.log(this); // 输出undefined
}();
</script>
// es6 modules中
<script type="module">
console.log(this); // 输出undefined
import { fn } from './outsideJs.js';
fn();
</script>
// outsideJs.js
export var fn = function () {
console.log(this); // 输出undefined
}