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

python - 是否需要“使用严格”的 Python 编译器?

Python存在静态分析工具,但编译时检查往往与Python 所拥护的运行时绑定理念截然相反。可以使用静态分析工具包装标准 Python 解释器来强制执行一些“使用严格”类的约束,但我们没有看到这种东西被广泛采用。

Python 是否有某些东西使“使用严格”行为变得不必要或特别不受欢迎?

或者,尽管 Perl 被广泛采用,但“使用严格”行为是否不必要?

注意:“必要”是指“实际上必要”,而不是绝对必要。显然你可以不使用“use strict”来编写 Perl,但是(据我所见)大多数 Perl 程序员确实使用它。

注意:Python 解释器包装器不需要类似“use strict”的约束——您可以使用类似于“use strict”的伪编译指示,普通解释器会忽略它。我不是在谈论添加语言级别的功能。


更新:根据评论解释 Perl 中“使用严格”的作用。(官方文档的链接在第一段。)

“use strict”指令具有三个不同的组件,其中只有两个非常有趣:

  • use strict vars:静态检查程序中词法范围的变量使用情况。(请记住,在 Python 中,基本上只有global作用域和local作用域)。许多 Python linter 会检查这类事情。因为这是他们唯一可以做的静态分析,所以 linter 假设你使用简单的词法作用域,并警告你在这种意义上看起来错误的事情,直到你告诉他们闭嘴。IE

    如果您没有对命名空间做任何花哨的事情,这对于检查拼写错误很有用。

  • use strict refs:防止符号命名空间取消引用。Python 最接近的类比是使用locals()globals()进行符号绑定和标识符查找。

  • 使用严格的潜艇:Python 中没有真正的模拟。

0 投票
29 回答
1161602 浏览

javascript - “use strict”在 JavaScript 中做了什么,背后的原因是什么?

最近,我通过 Crockford 的JSLint运行了一些 JavaScript 代码,它给出了以下错误:

第 1 行字符 1 的问题:缺少“use strict”语句。

做了一些搜索,我意识到有些人添加"use strict";到他们的 JavaScript 代码中。一旦我添加了语句,错误就停止出现了。不幸的是,谷歌没有透露这个字符串声明背后的大部分历史。当然,这一定与浏览器如何解释 JavaScript 有关,但我不知道会产生什么影响。

那么到底是"use strict";什么,它意味着什么,它仍然相关吗?

当前的浏览器是否响应该"use strict";字符串或是否供将来使用?

0 投票
2 回答
1716 浏览

javascript - Javascript:原型方法错误?

当这段代码时,我收到“TestFunc is not defined”错误...

...从这段代码中运行:

0 投票
2 回答
4063 浏览

javascript - 为什么这在严格模式下是非法的?

是的,是的,我知道,严格模式还没有出现,但实际上,我正在为未来做计划......

那么,为什么会这样:

...在 ES5 严格模式下不允许?

还是我误解了?JSLint:

能不能再详细一点,我想知道...?

编辑:

为避免混淆,这里有更多的原始代码:

0 投票
3 回答
1056 浏览

javascript - Javascript:除了“use strict”,还有哪些其他“use”指令?

此外use strict,还有哪些其他use指令?

0 投票
4 回答
4835 浏览

javascript - Javascript/jsLint:使用“use strict”时用什么替换jQuery(this);

当我使用 jslint 验证以下代码时,出现以下错误。

第 4 行字符 29 处的问题:严格违反。

第 5 行字符 56 处的问题:严格违反。

第 6 行字符 12 处的问题:严格违反。

第 8 行字符 12 处的问题:严格违反。

我猜这是因为使用了 jQuery(this) 但我不明白用什么替换它。请注意,这不是因为 jQuery 没有被声明为全局的。

0 投票
2 回答
4121 浏览

javascript - 为什么“使用严格”(JavaScript)不检测未声明的变量?

我正在尝试“使用严格”;指令工作,并有一点麻烦。在以下文件中,FireFox 9 将(正确地)检测到 someVar 尚未在第 3 行声明,但未能检测到 theVar 尚未在第 19 行声明。我很难理解为什么会这样。

0 投票
3 回答
917 浏览

javascript - John Resig's simple class instantiation and "use strict"

Reference : http://ejohn.org/blog/simple-class-instantiation/

I was wondering, if there are any ECMAScript 5 compliant way to implement the same functionality. The problem is, accessing arguments.callee is deprecated in strict mode.

0 投票
1 回答
3597 浏览

javascript - 没有严格模式的 JSON.parse

我正在阅读有关 javascript 中的严格模式的John Resig 博客,但我有一个问题。

严格模式的功能之一是使用 JSON.parse 和 JSON.stringify,但我可以在不“使用严格”的情况下使用它。

如果您编写他在博客上使用的相同示例:

你可以看到这个工作。

为什么这是允许的?我错过了什么吗?

谢谢!

0 投票
3 回答
35768 浏览

javascript - 为什么在使用严格时未定义匿名函数中的“this”?

为什么在严格模式下使用javascript匿名函数中未定义?我理解为什么这可能有意义,但我找不到任何具体的答案。

例子:

在小提琴中进行测试:http: //jsfiddle.net/Pyr5g/1/ 查看记录器(萤火虫)。