问题标签 [strict-mode]

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 投票
4 回答
383 浏览

javascript - 如何在 JS 严格模式下删除当前事件监听器(没有被调用者)

问题:一个事件监听器想要将自己从目标监听器列表中移除。侦听器可以是匿名函数和/或动态生成(闭包或绑定)

这是一个解决方案(在“严格模式”下不起作用):(“点击”事件的示例)

但这在 ES5 严格模式下不起作用。

问题:还有其他解决方案吗?

0 投票
4 回答
1334 浏览

angularjs - 如何在AngularJS中全局启用严格模式?

我花了很多时间调试一个程序,当我唯一的错误是切换了变量名的大小写时,我想我什么也做不了。

我可以通过键入“use strict”为每个文件启用严格模式(AKA,不能使用未声明的变量);它确实向我表明我正在使用一个不存在的变量。

如何全局启用严格模式,或者至少为我的项目文件启用严格模式?

0 投票
0 回答
51 浏览

javascript - 为什么在严格模式下使用它是不合法的

我有以下代码:

问题是,当我运行时,jshint我收到此警告消息:

如果使用函数调用执行严格模式函数,则其“this”值将未定义。

我该如何解决这个问题?

编辑:

我不知道为什么这个问题被标记为重复。

编辑2:

当我使用Controller而不是 时,我解决了这个问题controller,这必须处理Constructor Invocation Pattern,因为当您需要通过“new”关键字构造对象时,您应该将函数名称的第一个字符大写,var pm = this在这种情况下就是这样。

0 投票
2 回答
43 浏览

javascript - 当我们在严格模式下编写脚本时出现无法读取属性“任何”类型错误

在使用时strict mode,我正在type error访问varusing this

截屏:

在此处输入图像描述

foo();导致问题。如果我删除"use strict"一切正常。

提前致谢。

0 投票
1 回答
214 浏览

javascript - 是否可以说节点编译器暂时忽略严格模式?

第一个按预期工作:

第二个输出错误消息:

TypeError:在严格模式下可能无法访问“调用者”、“被调用者”和“参数”属性

我怎样才能绕过它?

编辑:当前解决方法

是否可以说节点编译器暂时忽略严格模式?

0 投票
1 回答
110 浏览

javascript - 编写外部javascript库的正确方法

我创建了一个类/库。我将新的类语法与构造函数及其方法一起使用,现在呢?在外部 JS 文件中使用它应该放什么?

我有这样的东西

我应该把 a 放在顶部use strict吗?

也许把我的班级放在一个自动执行的匿名函数中?或export与我的班级名称一起使用?

我见过许多具有如下语法的 .js 文件:

但我不知道这意味着什么,如果你不使用它们会发生什么,或者有什么优势,如果我只是将我class LoadBalancer {/*...*/}的放在loadBalancer.js文件中,就是这样。

0 投票
2 回答
1073 浏览

javascript - 在 AngularJS 中使用“使用严格”

我正在使用 AngularJS 1.6,我可以use strict与我的控制器、指令、服务等一起使用吗?

在 AngularJS 应用程序中使用“使用严格”是一种好习惯吗?

0 投票
1 回答
1138 浏览

angular - 如何在 ng build 上添加“严格”代码检查(没有生产标志)?

我正在开发一个Angular-4应用程序,它非常健壮,当我运行ng build --prod(或--aot)时它需要永远编译。大多数时候我只是简单地运行ng build.

我注意到的一点是,ng build它不会检查我的代码ng build --prod(它不会检查类型、丢失的变量、未使用的依赖项等)。

如何添加此检查而无需完成整个过程--prod

我不知道这是否有帮助,但这是我的package.json

0 投票
2 回答
155 浏览

javascript - 将“严格模式”包装在 IIFE(自调用)表达式中是一种好习惯吗?

我有一个非常简单的问题要问:每当我打算使用 " " 时,将代码包装在IIFE
中是一种好习惯吗?use strict


现在,我确实了解 Scope Closure 的有用性(在此处此处进行了回答 ) ,或者可能更好的是,曾经如此流行的模块设计方法的有用性以及为什么 IIFE 是一个如此强大的工具,可以(不仅)在这些场景,但这不是这个问题的意义所在。

我注意到,每当您想在全局范围内使用严格模式时,大多数linter(包括 jsfiddle)确实倾向于抱怨:

在此处输入图像描述

将块包裹在 IIFE 中似乎可以阻止 linter 抱怨

是否有任何理由说明为什么应该use strict;将其保留在 IIFE 内部,或者这只是没有正当理由提出的“毫无根据的反对意见”?

0 投票
1 回答
81 浏览

javascript - JS 严格模式 - 访问布尔变量

所以我查看了整个 Stack Overflow 并发现了类似的问题,但找不到可以应用于我的问题。我处于严格模式,并且我已经定义了一个变量(loaded = false),并尝试根据它的真假来执行 if/else 语句......并且在它运行一次之后,我希望它切换到“真”所以它不会再次运行。下面是代码:

但是我在“loaded = true”处收到一个错误,它说“从未使用过分配的值”。我假设这是一个范围界定问题,但我不确定该怎么做?

谢谢!

*更多细节:这是我正在使用的代码.. 显然其中一些是不可读的,因为使用了其他变量,但也许这会有所帮助。

所以你看,我正在尝试将变量设置为true,这样当他们在页面上执行操作时它不会再次运行......由于某种原因,更改页面上的某些内容将使滑动恢复活力(我不这样做不想发生)。