问题标签 [use-strict]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
114 浏览

javascript - “使用严格”是否提供任何速度改进?

撇开可能因代码结构更改而产生的差异不谈"use strict";,在严格模式下运行代码是否提供任何速度优势?

0 投票
0 回答
684 浏览

javascript - JSHint 函数未定义

我正在尝试编写更好的 Javascript / JQuery 代码,并用我的 Grunt 设置 JSHint。

现在我已经完成了我的代码,它似乎没问题,没有使用“严格”。我已将我的代码拆分为许多文件、管理部分、lib 部分(用于我的 JQuery、Backbone)等。

所以我试图在我的一个文件的顶部添加“使用严格”。

现在 JSHint 是说 AJAX 调用的成功部分中的一个函数没有定义?现在我在本节中调用的函数位于其他文件中,但在我的 Grunt 设置中构建了 javascript 文件,因此函数文件位于顶部,就在我所有的库文件下方。

所以我的AJAX函数如下:

所以在我的函数文件中,我构建了这样的函数,

它只是一个简单的函数,带有荧光笔类的颜色偶数/奇数行。

这一切都有效,但“使用严格”表示EvenOddRow未定义 me 函数。

所以我来宾我与函数的范围无关,还是只是因为函数在 AJAX 函数内?当我添加window.EvenOddRows时,JSHint 现在出现问题了。

那么最好的方法是什么?

如果有任何我没有发布的代码,有人需要查看,那么请告诉我,我会发布它。

*请不要说我有阅读障碍,所以我可能没有正确解释自己,如果是这样,请告诉我,我会重新提出我的问题,谢谢你的理解。

谢谢,

0 投票
4 回答
4065 浏览

javascript - 使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?

我有一个与 jshint-loader 连接的 webpack 项目,它的定义如下:

当我运行 webpack-dev-server 时,我的所有文件中都会收到以下警告:

WARNING in ./js/main.js jshint 导致错误 使用“use strict”的函数形式。@ line 1 char 1 "使用严格";

我尝试"strict": false在 jshint 下的配置文件中使用该选项,但没有帮助。

添加'use strict'文件也没有帮助。

我发现的唯一解决方案是/*jshint globalstrict: true*/在我的项目中的每个 js 文件中添加......

有人在全球范围内有解决方案吗?

谢谢。

0 投票
1 回答
1071 浏览

javascript - jasmine测试文件中是否需要使用'use strict'的函数形式?

我正在根据我在 AngularJS 中看到的示例在 jasmine 中构建单元测试。示例,例如Angular PhoneCat 教程中的这个单元测试,使用'use strict'. 然而,JSHint 抱怨我应该

使用“use strict”的函数形式。

我知道为什么'use strict'很重要,并且我想我理解为什么您应该'use strict'在源文件中使用函数形式而不是全局形式。但是,在jasmine测试文件中,是否可以使用'use strict'?

如果是这样,我可以只为我的 jasmine 测试文件抑制这些 JSHint 警告吗?

0 投票
5 回答
44160 浏览

javascript - 启用 use strict 后,如何找出 JavaScript 中的调用者函数?

启用时是否可以看到函数的被调用者/调用者use strict

0 投票
1 回答
1246 浏览

javascript - 为什么“使用严格”导致函数未定义

我有一个正在加载两个脚本的部分。第二个脚本调用第一个脚本中的一个函数......两个脚本都使用“use strict;” 在顶部。当第二个脚本调用第一个脚本中的函数时,我得到一个“未捕获的 ReferenceError函数名称未定义”。

起初我认为这与脚本的顺序有关,但经过一些调试后,我发现脚本以正确的顺序执行。部分通过 jquery 异步调用加载,并仅附加到当前视图。此外,我可以在 chrome 的调试器中调用第一个脚本的函数,直到第二个文件被加载。

我有点发疯了,把所有的东西都砍掉了,它还在发生。这就是我正在使用的...

脚本 1

脚本 2

阿贾克斯调用

部分的

页面加载后,我打开 chrome 调试器并执行“firstScript()”或“secondScript()”会引发相同的错误。

但是,如果我取出use strict;两个文件,它们都可以工作。这里到底发生了什么?

0 投票
2 回答
231 浏览

javascript - “使用严格”继承/范围

我只是想知道:

use strictat//1就足够了,还是我们必须在所有地方都明确表示//2//3

0 投票
3 回答
1521 浏览

javascript - 严格模式下的变量typeof对象?

这段 JavaScript 在没有"use strict";. 但是如何检查全局变量是否存在严格模式以及它具有什么类型而不会遇到undeclared variable错误?

0 投票
1 回答
943 浏览

javascript - 如何修复“缺少'使用严格'声明”?

当我尝试运行此代码时,我确实收到消息“缺少'使用严格'语句”。我不确定问题可能是什么。

0 投票
16 回答
52343 浏览

javascript - 如何删除 babel 添加的全局“use strict”

我正在使用“使用严格”的函数形式,并且不希望 Babel 在编译后添加的全局形式。问题是我正在使用一些不使用“使用严格”模式的库,并且在连接脚本后可能会抛出错误