【发布时间】:2024-04-29 10:20:02
【问题描述】:
我正在阅读一篇关于条件 javascript 的文章,但他们没有解释哪个更好用。我做了两个例子。
console.log('start');
const VALUE = true;
const TEST = false;
//test 1
VALUE && !TEST && (() => {
console.log('hello there!');
})();
//test 2
if(VALUE && !TEST) {
console.log('bye');
}
这个例子最重要的是我不想调用一个新函数我想像 if 语句一样执行函数内部的代码。如果你知道一些更好的事情,那么我迫不及待地想听到这个消息!
这是文章(请记住,示例并非直接来自文章) https://hackernoon.com/conditional-javascript-for-experts-d2aa456ef67c
【问题讨论】:
-
if看起来要好得多 IMO,当您需要 表达式的结果 时,最好使用导致表达式(包括条件运算符)的构造.如果您只是使用布尔逻辑,请使用if/else -
同意@CertainPerformance。我从未见过在任何地方使用过“测试 1”,也不知道它有什么好处。
-
就我个人而言,我不会打扰测试 1 中显示的语法。代码的可读性在这里应该是更高的优先级。此外,像 uglifier 或 minifier 这样的工具可能会自动为您生成与 test 1 非常相似的代码,同时不会牺牲可读性。
-
如果你担心这个功能,别担心,完全关掉它
VALUE && !TEST && console.log('hello there!'); -
你说他们没有解释哪个更好用,但我可以找到“你会看到一些条件语句如何转换为简单的表达式。你也会看到这样的转换可以使您的代码看起来更紧凑和更干净。”当然,许多人会不同意 -
if对于具有副作用的语句更具可读性。是的,他们可以缩短它,但这篇文章被称为“专家的条件”而不是“缩小器”。只有当你想产生一个值(通常是三元)时,它才有意义。
标签: javascript if-statement ecmascript-6 conditional