严格模式下有如下注意点
一: 全局this的用法
function Foo(){
'use strict'
console.log(this.location);
}
Foo()
如上代码this.location会打印typeError
因为this都是undefined,再调用就直接报错了。
可以使用window.location,可以获取到当前url的详细信息
特殊情况:
setTimeout(function () { this.name = "hello"; });
无论严格模式还是非严格模式,浏览器环境下setTimeout内的this永远指向window,执行结果是 window上挂了一个属性window.name,这个值会一直存在,造成内存泄漏。
二:旧版本的处理
use strict是JS的严格模式的标示,在 JavaScript 旧版本中会被忽略
文章讲述了在严格模式下JavaScript的两个关键注意事项:1)全局this在函数中的行为导致`this.location`错误,需改用`window.location`;2)`setTimeout`内的`this`始终指向`window`可能导致内存泄漏。同时提到,严格模式在旧版本JavaScript中可能被忽略。
966

被折叠的 条评论
为什么被折叠?



