问题标签 [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 回答
507 浏览

javascript - 在自执行匿名函数中使用 undefined

我正在尝试使用 CoffeeScript 中的自执行匿名函数来实现命名空间:

如何在 JavaScript 中声明命名空间?

http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/

我还想保护“未定义”不被重新定义,因为这是文章所建议的。

所以在 CoffeeScript 中,我可以这样做:

并接近文章中描述的格式:

但是当我尝试在...中添加未定义时,由于严格模式而出现编译错误:

http://arcturo.github.com/library/coffeescript/07_the_bad_parts.html

“某些变量(例如 undefined)不再可写”

我想知道是否有解决方法?我想保持严格模式,因为使用它可能有我不完全了解的好处。但即使谷歌搜索关闭它的方法......我想出了零。

感谢您的关注!

0 投票
4 回答
1543 浏览

javascript - jQuery 回调 - 严格违反

我得到了关于不在此处概述的基本想法,this老实说,它有点博学。所以,用更平淡的术语来说:methodstrict mode

我有一个像这样的处理程序:

我想把它改成这样:

它不喜欢它,strict mode因为我在方法this之外使用它。我明白了。

但是,我需要myFunction与处理程序分开,因为(1)它附加到各种类/元素和(2)我用来在各个点.off().one('keyup', myFunction)重置one各种类的处理程序。

那么如何在不违反this业务的情况下绕过单独的回调函数呢?

0 投票
3 回答
9191 浏览

php - 严格标准:只能通过引用传递变量 - php错误

严格标准:第 10 行中仅应通过引用传递变量

我该如何摆脱这个错误?谢谢,麻烦您了 :)

0 投票
1 回答
162 浏览

inheritance - 将接口限制为特定类或将属性/声明限制为特定类+接口

我有一个接口 IDataControl:

然后,我有一个带有 List<IDataControl> 变量的类。


问题是当我尝试将此集合的元素添加到另一个表单或另一个控件的“控件”属性中时:

IDE 告诉我“最好的重载方法匹配......”因为“IDataControl”不是从“Control”继承的。

我理解这个错误,我知道我可以做一些铸造,比如:


但是,我想知道是否有一种“更清洁”的方式来做到这一点,不需要强制转换,也有严格的类型验证。



那么,是否可以表明“IDataControl”只能由 Control 派生对象实现?


或者,是否可以声明一个类和一个接口的变量?
像这样的东西:




谢谢

0 投票
1 回答
997 浏览

php - 在 Joomla 中处理 E_STRICT

线

给我这个E_STRICT

严格的标准:只能通过引用分配变量

这到底是什么意思?我正在使用JFactory就像它在文档中所说的那样。我应该担心吗?

谷歌搜索错误只会给我一堆 Joomla 人说我应该禁用E_STRICT. 我宁愿不走捷径,因为我正在努力提高我的技能。

0 投票
3 回答
200 浏览

php - PHP:编写严格的代码有什么好处吗?

当我设置error_reporting(E_ALL | E_STRICT);时,我的代码会产生Undefined variable错误。我可以解决它们,但我想知道编写通过严格检查的代码和E_STRICT关闭代码之间在速度或内存使用方面是否有任何差异?

0 投票
1 回答
856 浏览

javascript - JavaScript 严格模式下“this”的行为不一致

更新

为清楚起见:@FelixKing:是的,我希望this在调用时仍然未定义window.foo(),原因如下:因为,在 JavaScript 中:

几乎)与以下内容相同:

foo === window.foo评估为真,我希望他们都表现得一样。如果函数是变量,并且 JS 回退到全局对象(在函数 x 内部,变量未声明但您使用它,JS 会冒泡通过所有范围,直到全局对象,直到找到有问题的变量,或者它在全局级别上创建它),是否预先指定window对象无关紧要。然而,当你这样做时,行为会发生变化,这是我没想到的。
对于为什么会出现这种情况,我有一种直觉(我定义的是方法,而不是变量),但话又说回来,对于全局对象,它们之间几乎没有区别。var c = 'Variable'; console.log(window.c === c);记录真实等...但我想知道什么区别实际上是,以及它是如何工作的(在所有级别上)。

我已经准备好接受这一点,foo.apply(this,[]);或者foo.apply(window,[]);允许你强制this指向全局对象,但不是window.foo();. 如果严格是为了保护全局对象,我会说这会让后门大开。例如,我偶尔会发现自己调用函数,具体取决于变量的值。为此,我使用window[myVar]();,无论是否严格,这意味着this 指向全局对象,而如果我直接调用该函数,则不会。也就是说,在我看来,不一致。


this在严格模式下遇到了关键字的一些奇怪行为。不要误会我的意思,我知道在严格的函数中this是未定义的。我发现令人困惑的是,它可以被迫指向全局对象(或任何其他对象,就此而言),有效地破坏了严格模式提供的安全网。这也有其他含义。考虑这段代码:this

同样适用于自定义对象:

在我看来,这可能是黑客和陷阱的来源。更重要的是:这使得确定调用的来源变得相当困难:如果foo()从全局对象 ( window.foo();) 调用,则该上下文当然不会传递给bar,除非bar使用调用bar.apply(this,[]);

我可能想要一种简单明了、安全可靠的方法来确定调用者上下文的原因很简单:我使用闭包来避免那些讨厌的全局变量,但同时我正在设置几个充当事件处理程序的函数。
我知道不使用严格模式或设置全局是很容易解决的问题,但是严格模式会一直存在,我喜欢它给聚会带来的东西(嗯,大部分)。我坚信这是 JS 将要发展的方式,我不想因为不想打扰strict. 这可能不会很快发生,但我只想让我的知识保持最新。

我已经阅读了 上的 MDN 页面strict以及 John Resig 的博客文章,我看过不少 DC 的视频并阅读了很多他的文章,但我还没有找到对我上面描述的行为的明确解释。我还没有通读整个 ECMAScript 标准(天哪,那些东西太干了,它可能会耗尽撒哈拉沙漠),但也许这里有人可以为我指出正确的方向,以帮助我更好地理解这一点。

0 投票
6 回答
382 浏览

sed - 如何查找和打印具有严格模式的行是合适的

问题如下。有一个带有一组字符串 testfile 的文件:

需要找到一条具有严格模式的行是合适的,例如“HD loop”,然后输出在该行及其之后找到的字符串。换句话说,结果应该是这样的:

0 投票
1 回答
120 浏览

javascript - 如何让javascript不将小数点为0的数字四舍五入为整数

有没有办法让 JS 不将小数点为 0 的数字四舍五入为整数?ex var = 100.0 //100?我知道这在 JS 中不是很常见的事情,但需要从处理库中移植一个方法,该处理库将导入到 processing.js。该方法使用严格类型的浮点数/整数来决定它是浮点数还是整数/颜色值。

谢谢

0 投票
1 回答
78 浏览

vb.net - 需要帮助翻译 vb.net 行以严格证明

我在将此 vb.net 行翻译成严格证明时遇到问题

ReferenceOutput 是一个类, datagrid1.selectedindex 是在 datagrid 中选择的。我如何将其转化为严格的证明行。我现在收到以下错误。

谢谢