【发布时间】:2017-11-25 10:02:19
【问题描述】:
一位同事建议我将"use strict"; 添加到我的 JS 代码的顶部,以突出显示我的定义中的任何空白和潜在的引用错误等。我对此非常满意,因为它已经确定了几段可能有一直是个问题。
但是,另一位同事建议我,在调用带有多个参数的函数时,按照指定的参数命名参数会很有帮助,尤其是当它像一堆布尔值时。为了说明,这里有几个函数调用:
logData(data, target, preserveLog=true, changeClass=false, wrapLine=false);
...比:
logData(data, target, true, false, false);
但是"use strict"; 讨厌这个。在我完成此操作的任何地方,我都会在控制台中收到参考错误。正如预期的那样,它仍然可以正常运行,但是现在控制台中充斥着所有这些明显未定义的引用。
有谁知道是否有办法解决这个问题,这样我就可以保持我的同事欣赏的编码约定,还是我必须停止使用 "use strict"; 或检查我的所有代码并删除参数的名称?
谢谢。
【问题讨论】:
-
好吧,严格模式是正确的。这是一种可怕的做法。您到处都在将值泄漏到全局变量中。不要那样做。
-
如果你想使用“命名参数”,pass objects.
-
@Bergi 谢谢,我可能会更改一些较长的调用来获取对象。
-
@Emissary 我相信您知道 IntelliSense 并非始终对每个工作环境中的每个人都可用,而且它当然不能成为编写不可读代码的借口。
-
在这里讨论使用对象的 ES6 调用约定是否合理?
标签: javascript calling-convention use-strict