javascript - 具有 "use strict"的效果;在文件范围内,但不在顶部

标签 javascript

我理解不应该这样做,把它当作一个学术问题。
例如,如果我要连接几个 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/

相关文章:

javascript - 从 Node.js 文件中获取数据并将其显示在 HTML/JS 页面中

javascript - 如何使用 javascript 操作 div 样式?

javascript - 使用 Angular2 根据选择框值显示或隐藏内容 div

javascript - Google 表单自定义字段验证

javascript - 如何强制用户在 javascript 提示符中输入值?

javascript - 我怎样才能使 go Time 与 js Date 兼容

javascript - 为什么联系表单电子邮件在某些字段中发送 "Value"而不是 "Name"?

javascript - 当循环变量传递给回调函数时 undefined variable

javascript - 什么是 react-empty : *?

javascript - C# MVC 获取完整文件路径