问题标签 [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 投票
1 回答
123 浏览

javascript - 为什么不是“使用严格”默认值?

为什么“使用严格”不是解释 ES6 javascript 的默认方式,而是更喜欢功能:“不要使用严格”(或其他)来关闭它?

以前,我认为“使用严格”有点像 macOS 中的安全模式(仅在必要时打开,然后只是暂时打开),但后来我了解到许多开发人员建议使用“使用严格”基本上一切都在 javascript 中。

那么,如果它是推荐的默认值,为什么它不是解释器的实际默认值呢?

0 投票
1 回答
92 浏览

javascript - 如何在 Reactjs 中使用未声明的变量

我在运行时使用 document.createElement('script') 在我的反应代码中创建一个脚本节点并将其 src 分配给一个 url,现在我想在我的反应代码中使用包含的 JS 的变量而不声明它。

0 投票
0 回答
23 浏览

angularjs - 我读到“使用严格”错误,但它没有说明究竟是什么导致了错误

似乎有一个不好的编码习惯,但它并没有准确地说明在哪里。有人有这方面的经验吗?

这是导致错误的代码

0 投票
1 回答
53 浏览

javascript - 为什么这段代码创建了对象,但仍将其视为未定义?

我不明白为什么这段代码不能按预期工作:

在此处输入图像描述

我一直认为=运算符首先评估它右边的任何东西(这个片段中的 IIFE),然后将结果分配给它左边的任何东西(window.obj.prop在这个片段中)。看起来这里发生了一些不同的事情。

如果解释器首先评估 IIFE,那么它应该window.obj在设置它之前创建.prop,这不应该导致TypeError. 另一方面,如果解释器首先检查 in 的存在propwindow.obj并且TypeError由于window.obj未定义而失败),那么它不应该评估不应该创建的 IIFE window.obj

我观察到两者都是window.obj被创建 TypeError被抛出的,这对我来说没有意义。


笔记:

  • "use strict"在“以防万一”的情况下,该片段的工作方式类似,没有它;
  • 该片段在浏览器(Chrome 80.0)和 Node.js(v13.3)中的工作方式相同;
  • 在运行此代码段之前window.obj(或global.obj在节点中)对象不存在;
0 投票
2 回答
116 浏览

javascript - 当我们使用模板文字时,`use strict` 不起作用

如果我use strict用反引号/模板文字括起来,则“使用严格”不会按预期工作。你能分享一下背后的原因吗?是否有任何类似的异常声明模板文字无法按预期工作?

0 投票
1 回答
492 浏览

javascript - “使用严格”在使用 Visual Studio Code 的 ES6 上不起作用

"use strict"模式中,this函数中应该是[object Window]而不是在常规模式下调用函数的对象。但是当我试图证明概念时,它不起作用,我想知道 Visual Studio Code 中的 ES6 扩展有什么问题,但我不知道如何解决。有人能帮我吗?:| 这是我用来测试的代码"use strict"

0 投票
0 回答
76 浏览

javascript - Jest helper-module-transforms 无法读取未定义的属性“值”

我正在尝试运行 jest 来对我的 es6 模块进行单元测试。尝试运行测试用例时出现以下错误:

错误所在行的代码

这里的directive.value 是未定义的。

知道如何解决这个问题吗?在运行之前是否需要设置一些环境或配置,以便directive.value.value 为“使用严格”。我在上面的行上通过硬编码return true进行了测试,测试用例完美地工作,没有任何错误。

我的 package.json 有以下内容:

0 投票
1 回答
36 浏览

javascript - 我在 JS 中隐式启用了“使用严格”模式

事实证明我启用了“使用严格”,但我不知道为什么......

这段代码返回给我true,我在一个纯.js文件中测试它,没有依赖关系或任何东西。也许扩展可能会干扰?

编辑: 好的,我意识到它在严格模式下运行,因为我使用的是 ES6 模块

<script type="module" src="main.js" defer ></script>

不知道每个 ES6 模块都在严格模式下运行

我应该回答我自己的问题还是像这样编辑它可以吗?抱歉,我是新来这里提问的