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

javascript - 如何在不修改实用程序对象范围的情况下使用“使用严格”?

我正在使用几个全局实用程序对象,例如:

"use strict"在这种情况下如何使用?我尝试了以下方法:

但正如您可以想象StringUtils的那样,在其范围之外不再可用。

0 投票
2 回答
1288 浏览

javascript - 这是 Chrome 错误还是我使用“use strict”和 eval 无效?

此代码在除 Chrome 之外的所有浏览器中都可以正常工作:

(在jsfiddle上试试)。

我所做的只是在上下文中从'use strict'函数中引用外部变量。eval铬 说

注意:我最初devtool: 'eval'在 Webpack中使用时遇到过它。

0 投票
0 回答
26 浏览

javascript - 是否添加“使用严格”;功能块影响后来添加到原型的方法和属性?

对此进行了一些搜索,但没有找到任何确切的信息。请考虑以下示例:

我的问题与以下每种情况有关:

场景 1:在与上面相同的文件中,我们有以下代码:

或 --> 场景 2:在单独的文件中,与场景 1 相同的代码(显然可以在构造函数之前或之后:

简而言之,我想了解的是如何“使用严格”;影响代码,以及在哪里。另一个好问题:为什么 JSHint 建议只使用“函数

0 投票
1 回答
881 浏览

javascript - Javascript 使用严格错误未捕获

我正在为 AMD 创建一个使用 require.js 的主干.js 应用程序。为了检查use strict浏览器中的支持,我包含了以下代码。但是,当代码运行时,抛出的错误var o = {p:1, P:2}并没有像我预期的那样被捕获,而是杀死了整个页面。

Chrome 控制台打印此错误:Uncaught SyntaxError: Duplicate data property in object literal not allowed in strict mode

为什么错误使我的页面崩溃而不是被捕获?我怎样才能解决这个问题?

0 投票
2 回答
141 浏览

javascript - 函数 foo(param) { alert("foo 调用"); } 和 $scope.foo = function(param){alert("foo");};

我想我和许多其他人一样在使用 AngularJS 时遇到了类似的问题。我正在修复以前的错误消息(我无法从测试描述块中调用控制器函数)并得到新的错误。

错误:[ng:areq] 参数 'fooController' 不是函数,未定义

我已经阅读了其他帖子,但仍然无法纠正。

所以我的控制器就像..

我的控制器规格是..

为什么它一直说 fooController 不是一个函数?

谢谢大家。

旧帖已编辑。请您阅读底部的帖子(我的新问题?:))

0 投票
0 回答
204 浏览

function - 为什么 JSHint 在带参数的自调用函数结束时显示缺少“使用严格”错误

jsHint 使用我传入参数的标准模块模式在自调用函数的末尾生成错误:}(window.document, jQuery))

有谁知道为什么?

0 投票
2 回答
3237 浏览

javascript - “使用严格”和只读属性的奇怪行为

在 MDN 严格模式参考页面上它说

任何在正常代码中静默失败的赋值(赋值给不可写属性、赋值给 getter-only 属性、赋值给不可扩展对象的新属性)都将进入严格模式

因此,使用他们的示例,执行以下操作会引发 TypeError

然而,我遇到了一个例子,似乎“使用严格”对这条规则有点过分热心。这是我的设置

定义lol.js

setlol.js

应用程序.js

跑步node app.js

这个输出有几个有趣的地方。首先是我们不是在尝试设置lol属性,Object.prototype而是在尝试设置 的lol属性verbose。为了证明这一点,我变成definelol.js

现在,跑步node app.js

有趣的第二件事是原始程序失败verbose.lol = '123'但非常高兴创建sugar并将其设置lol为 123。我不明白这一点,因为似乎我们创建的方式sugar应该只是我们创建方式的语法糖verbose

0 投票
1 回答
1052 浏览

javascript - 为什么“使用严格”仍然是字符串文字?

为什么我们仍然必须使用带引号的字符串文字才能strict在 JS 中打开?当然,这里可以使用更强烈的“类型化”,例如调用内置函数Object.UseStrict()或类似的东西。不得不求助于字符串文字的原因是什么?

0 投票
1 回答
1552 浏览

node.js - 为什么“让” es6 和谐只适用于使用严格?

这段代码:

..给出“语法错误:扩展模式外的非法 let 声明”

但是使用“使用严格”它可以正常工作。

所以有趣的是为什么“让”首先与“使用严格”模式集成?(根据http://kangax.github.io/compat-table/es6/#nodeharmony

0 投票
1 回答
41 浏览

javascript - 可以在严格模式下使用字符串值调用函数吗

我想知道是否可以通过传递字符串名称来调用函数。以下是基本架构:

Javascript:

代码设置在http://jsfiddle.net/rexonms/9c7bnkc9/