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

javascript - 为什么在 Chrome 的控制台窗口中运行时未将 undefined 记录到控制台?

如果我没有声明严格模式,那么全局对象将被打印到控制台(即窗口)。

但是,鉴于声明了严格模式,我希望将 undefined 打印到控制台。

参考:

“这意味着,除其他外,在浏览器中,不再可能通过 this 在严格模式函数中引用窗口对象。”

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode#.22Securing.22_JavaScript

更新:要实现预期的行为,您需要创建一个新的执行上下文并在该上下文中引用它,如下所示:

0 投票
4 回答
18892 浏览

angularjs - TypeError:试图分配给只读属性。在 iOS8 Safari 上的 Angularjs 应用程序中

我们的移动应用程序收到“TypeError: Attempted to assign to readonly property”。仅在 IOS 8 上,堆栈跟踪没有帮助,似乎在 Angular 代码中。

这可能是由于 Angularjs 代码顶层的“使用严格”而发生的。我的问题是(1)为什么它只开始在 IOS8 上发生?这是IOS8的错误吗?(2) 或者这是 IOS8 上出现的一个有角度的错误?(3) 或者也许我们违反了严格的模式规则,但只有 IOS8 开始捕捉它们!我对第三个选项持怀疑态度,因为其他主要浏览器都支持严格模式。

我在这里发现了一个类似的报告问题

0 投票
1 回答
631 浏览

javascript - 如何在严格模式下将附件下载为二进制数据?

我正在使用以下函数在 Office 365 应用程序中下载附件文件,作为二进制数据:

它在 Chrome 浏览器中成功运行,但是当我通过 Outlook 桌面客户端打开它时出现以下错误:

错误类型错误:在严格模式下不允许分配给只读属性

执行此行时发生错误:

此实施是否有任何替代解决方案?

0 投票
1 回答
18956 浏览

drools - 从 Drools 调用重载方法:`无法使用严格模式解析方法`

我是 java 和 drools 的新手,我必须构建一个 java RESTful Web 服务/规则引擎。我们已经拥有运行 drools 5.2 版的 Genesys Rule Authoring (GRAT) 和 Genesys Rule Engine (GRE)(8.1.2 版)。我们需要获取 GRAT 包的源代码并将它们用于我们的开发环境的“精简规则引擎”。对于我的 POC,我已经安装了 drools 5.2 并创建了一个可以像我想要的那样消化我的包和火规则的项目。但是对于某些包我有这种错误:

如果您查看最后的包,您会看到函数 obtenirValeurParametre(String, String)。您还将看到使用 (Integer, String) 调用此函数,并且错误在此行。在 drools 包中,我不能具有不同参数的相同功能。我尝试使用“drools.dialect.mvel.strict”=false,但它不会改变任何东西。

由于 GRE 像我一样运行 drools 5.2 并且它适用于 GRE,我认为它必须存在一个解决方案,然后添加 .toString() 或类似的东西。考虑到我们有很多包,其中一些有上千条规则,我不想对每条规则进行调整。

有人有解决这些问题的想法吗?他/她将是我的英雄!

谢谢

阿兰

0 投票
2 回答
6025 浏览

java - 无法使用对象类型的严格模式解析方法

昨天我在将不同类型的参数传递给函数时发布了一个关于严格模式的问题,一个 laune 找到了解决方案。按照建议,我现在使用 drools 5.6 版。

现在,我仍然有严格模式错误,但对于另一种情况。不幸的是,我不能应用相同的解决方案。函数 creerAction() 返回不同类型的对象。有人对这种情况有想法吗?

这是错误

这是我的流口水文件。

谢谢你的帮助。

0 投票
1 回答
243 浏览

javascript - 带有咖啡脚本的流星包(以及继承和严格模式)

我正在尝试使用咖啡脚本以严格模式构建流星包。主要问题是咖啡脚本流星包中描述的共享的使用。似乎我误解了链接中的解释,因为我收到以下错误:

打包后在 javascript 中运行良好。我只是将NotificationCommon的定义放在'use strict'之前。

目标是

  • NotificationCommon , 范围包
  • NotificationClientNotificationServer:范围文件
  • 通知:出口

这是我的咖啡脚本版本:

notification_common.coffee

notification_client.coffee

notification_server.coffee

package.js

任何帮助都感激不尽。

0 投票
1 回答
107 浏览

javascript - Function.prototype.call 在严格模式之外改变 this 的类型;为什么?

在严格模式下:example.call('test') # prints 'string'

除此以外,example.call('test') # prints 'object'

但是,console.log(example.call('test'))打印test(如您所料)

为什么Function.callchangetypeof 'test' === 'string'绑定到thisinside example

0 投票
2 回答
1599 浏览

javascript - 严格模式和保留字

为什么这段代码很好:

虽然这不是

我知道 interface 在严格模式下是保留字,但是两个示例都不应该抛出错误吗?

0 投票
0 回答
1128 浏览

meteor - SyntaxError:在使用 Meteor.npmRequire 加载的包中以严格模式使用 const

我有一个 Meteor 应用程序,该应用程序需要通过packageMeteor.npmRequire提供的 NPMmeteorhacks:npm包。问题是这个包使用了最新的 ES6 特性并且npmRequire没有,所以我得到的是

如何覆盖此行为?是否可以Meteor.npmRequire尊重 ES6 特性而不是坚持 ES5 严格模式?

0 投票
4 回答
15485 浏览

javascript - 我应该对我编写的每个 javascript 函数都“使用严格”吗?

我应该对我编写的每个 javascript 函数都“使用严格”吗?

在大型 AngularJS 项目中使用 strict 的好习惯是什么?在全局范围内使用它可能会破坏不支持它的第三方库,但每次都“使用严格”只是重复很多。