问题标签 [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.
javascript - 如何在 JS 严格模式下删除当前事件监听器(没有被调用者)
问题:一个事件监听器想要将自己从目标监听器列表中移除。侦听器可以是匿名函数和/或动态生成(闭包或绑定)
这是一个解决方案(在“严格模式”下不起作用):(“点击”事件的示例)
但这在 ES5 严格模式下不起作用。
问题:还有其他解决方案吗?
angularjs - 如何在AngularJS中全局启用严格模式?
我花了很多时间调试一个程序,当我唯一的错误是切换了变量名的大小写时,我想我什么也做不了。
我可以通过键入“use strict”为每个文件启用严格模式(AKA,不能使用未声明的变量);它确实向我表明我正在使用一个不存在的变量。
如何全局启用严格模式,或者至少为我的项目文件启用严格模式?
javascript - 为什么在严格模式下使用它是不合法的
我有以下代码:
问题是,当我运行时,jshint
我收到此警告消息:
如果使用函数调用执行严格模式函数,则其“this”值将未定义。
我该如何解决这个问题?
编辑:
我不知道为什么这个问题被标记为重复。
编辑2:
当我使用Controller
而不是 时,我解决了这个问题controller
,这必须处理Constructor Invocation Pattern
,因为当您需要通过“new”关键字构造对象时,您应该将函数名称的第一个字符大写,var pm = this
在这种情况下就是这样。
javascript - 是否可以说节点编译器暂时忽略严格模式?
第一个按预期工作:
第二个输出错误消息:
TypeError:在严格模式下可能无法访问“调用者”、“被调用者”和“参数”属性
我怎样才能绕过它?
编辑:当前解决方法
是否可以说节点编译器暂时忽略严格模式?
javascript - 编写外部javascript库的正确方法
我创建了一个类/库。我将新的类语法与构造函数及其方法一起使用,现在呢?在外部 JS 文件中使用它应该放什么?
我有这样的东西
我应该把 a 放在顶部use strict
吗?
也许把我的班级放在一个自动执行的匿名函数中?或export
与我的班级名称一起使用?
我见过许多具有如下语法的 .js 文件:
但我不知道这意味着什么,如果你不使用它们会发生什么,或者有什么优势,如果我只是将我class LoadBalancer {/*...*/}
的放在loadBalancer.js文件中,就是这样。
javascript - 在 AngularJS 中使用“使用严格”
我正在使用 AngularJS 1.6,我可以use strict
与我的控制器、指令、服务等一起使用吗?
在 AngularJS 应用程序中使用“使用严格”是一种好习惯吗?
angular - 如何在 ng build 上添加“严格”代码检查(没有生产标志)?
我正在开发一个Angular-4应用程序,它非常健壮,当我运行ng build --prod
(或--aot
)时它需要永远编译。大多数时候我只是简单地运行ng build
.
我注意到的一点是,ng build
它不会检查我的代码ng build --prod
(它不会检查类型、丢失的变量、未使用的依赖项等)。
如何添加此检查而无需完成整个过程--prod
?
我不知道这是否有帮助,但这是我的package.json
:
javascript - 将“严格模式”包装在 IIFE(自调用)表达式中是一种好习惯吗?
我有一个非常简单的问题要问:每当我打算使用 " " 时,将代码包装在IIFE
中是一种好习惯吗?use strict
现在,我确实了解 Scope Closure 的有用性(在此处 和 此处进行了回答 ) ,或者可能更好的是,曾经如此流行的模块设计方法的有用性以及为什么 IIFE 是一个如此强大的工具,可以(不仅)在这些场景,但这不是这个问题的意义所在。
我注意到,每当您想在全局范围内使用严格模式时,大多数linter(包括 jsfiddle)确实倾向于抱怨:
将块包裹在 IIFE 中似乎可以阻止 linter 抱怨
是否有任何理由说明为什么应该use strict;
将其保留在 IIFE 内部,或者这只是没有正当理由提出的“毫无根据的反对意见”?
javascript - JS 严格模式 - 访问布尔变量
所以我查看了整个 Stack Overflow 并发现了类似的问题,但找不到可以应用于我的问题。我处于严格模式,并且我已经定义了一个变量(loaded = false),并尝试根据它的真假来执行 if/else 语句......并且在它运行一次之后,我希望它切换到“真”所以它不会再次运行。下面是代码:
但是我在“loaded = true”处收到一个错误,它说“从未使用过分配的值”。我假设这是一个范围界定问题,但我不确定该怎么做?
谢谢!
*更多细节:这是我正在使用的代码.. 显然其中一些是不可读的,因为使用了其他变量,但也许这会有所帮助。
所以你看,我正在尝试将变量设置为true,这样当他们在页面上执行操作时它不会再次运行......由于某种原因,更改页面上的某些内容将使滑动恢复活力(我不这样做不想发生)。