问题标签 [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.
javascript - 在自执行匿名函数中使用 undefined
我正在尝试使用 CoffeeScript 中的自执行匿名函数来实现命名空间:
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)不再可写”
我想知道是否有解决方法?我想保持严格模式,因为使用它可能有我不完全了解的好处。但即使谷歌搜索关闭它的方法......我想出了零。
感谢您的关注!
javascript - jQuery 回调 - 严格违反
我得到了关于不在此处概述的基本想法,this
但老实说,它有点博学。所以,用更平淡的术语来说:method
strict mode
我有一个像这样的处理程序:
我想把它改成这样:
它不喜欢它,strict mode
因为我在方法this
之外使用它。我明白了。
但是,我需要myFunction
与处理程序分开,因为(1)它附加到各种类/元素和(2)我用来在各个点.off().one('keyup', myFunction)
重置one
各种类的处理程序。
那么如何在不违反this
业务的情况下绕过单独的回调函数呢?
php - 严格标准:只能通过引用传递变量 - php错误
严格标准:第 10 行中仅应通过引用传递变量
我该如何摆脱这个错误?谢谢,麻烦您了 :)
inheritance - 将接口限制为特定类或将属性/声明限制为特定类+接口
我有一个接口 IDataControl:
然后,我有一个带有 List<IDataControl> 变量的类。
问题是当我尝试将此集合的元素添加到另一个表单或另一个控件的“控件”属性中时:
IDE 告诉我“最好的重载方法匹配......”因为“IDataControl”不是从“Control”继承的。
我理解这个错误,我知道我可以做一些铸造,比如:
但是,我想知道是否有一种“更清洁”的方式来做到这一点,不需要强制转换,也有严格的类型验证。
那么,是否可以表明“IDataControl”只能由 Control 派生对象实现?
或者,是否可以声明一个类和一个接口的变量?
像这样的东西:
谢谢
php - 在 Joomla 中处理 E_STRICT
线
给我这个E_STRICT
严格的标准:只能通过引用分配变量
这到底是什么意思?我正在使用JFactory
就像它在文档中所说的那样。我应该担心吗?
谷歌搜索错误只会给我一堆 Joomla 人说我应该禁用E_STRICT
. 我宁愿不走捷径,因为我正在努力提高我的技能。
php - PHP:编写严格的代码有什么好处吗?
当我设置error_reporting(E_ALL | E_STRICT);
时,我的代码会产生Undefined variable
错误。我可以解决它们,但我想知道编写通过严格检查的代码和E_STRICT
关闭代码之间在速度或内存使用方面是否有任何差异?
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 标准(天哪,那些东西太干了,它可能会耗尽撒哈拉沙漠),但也许这里有人可以为我指出正确的方向,以帮助我更好地理解这一点。
sed - 如何查找和打印具有严格模式的行是合适的
问题如下。有一个带有一组字符串 testfile 的文件:
需要找到一条具有严格模式的行是合适的,例如“HD loop”,然后输出在该行及其之后找到的字符串。换句话说,结果应该是这样的:
javascript - 如何让javascript不将小数点为0的数字四舍五入为整数
有没有办法让 JS 不将小数点为 0 的数字四舍五入为整数?ex var = 100.0 //100?我知道这在 JS 中不是很常见的事情,但需要从处理库中移植一个方法,该处理库将导入到 processing.js。该方法使用严格类型的浮点数/整数来决定它是浮点数还是整数/颜色值。
谢谢
vb.net - 需要帮助翻译 vb.net 行以严格证明
我在将此 vb.net 行翻译成严格证明时遇到问题
ReferenceOutput 是一个类, datagrid1.selectedindex 是在 datagrid 中选择的。我如何将其转化为严格的证明行。我现在收到以下错误。
谢谢