我理解不应该这样做,把它当作一个学术问题。
例如,如果我要连接几个 JavaScript 文件,一些在顶部带有 'use strict';
,而另一些则没有,结果会怎样?
我知道如果你把这个短语放在文件的顶部,它会为整个文件启用严格模式,如果它在一个函数的开头,它的作用域就是那个函数。
但是,如果第一个 'use strict';
是中途呢?我想您也可以将此探索推断为功能范围内的用途。
会吗;
- 没有影响,
- 为整个文件启用严格模式,或者
- 以某种方式仅对剩余的代码长度启用严格模式?
例如
/*from file1.js*/
function bob() {
willThisError = 'because of use strict mode below?';
}
/*from file2.js*/
"use strict";
function bob2() {
var thisAuthor = 'likes to enable strict mode';
}
或
//midway through function
function test() {
willThisError = '?';
'use strict';
var orWillIt = 'have no effect';
}
我想我可以自己测试一下,但我对规范引用或其他东西感兴趣,而不是陷入浏览器对严格模式声明的个别解释。
最佳答案
将严格模式
脚本与非严格模式脚本串联起来的效果取决于您执行此操作的顺序。如果您从 strict
脚本开始,整个脚本将看起来是 strict
。如果你从一个非严格的开始,它看起来会是非严格的。
你可以找到一个很好的引用here
关于javascript - 具有 "use strict"的效果;在文件范围内,但不在顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737069/