【发布时间】:2021-12-12 17:44:39
【问题描述】:
是否可以在 switch 语句中放置三元运算符?
类似这样的东西(不起作用):
case "streetName" : entries[0][1] ?? entries[0][1] += `, ${value}` : value;
【问题讨论】:
-
你正在混合
Ternary(?+:) 和Nullish coalescing(??)。 -
另外,无论你在做什么,你可能都不应该这样做。三元应该用于简单的分配。您正试图在其中增加一个值。这只是令人困惑和不必要的。
-
使用正确的语法是可能的。但仅仅因为某事是可能的,并不意味着它应该去做。
-
从技术上讲,您可以在任何允许使用表达式的地方使用三元运算符,包括在
switch括号内和作为case值,而不仅仅是在case 语句中。你所说的“不工作”与使用三元无关。 -
前面的案例是:case "streetNumber" : entries[0][1] = value;理想情况下,如果存在,我想连接成一个变量
标签: javascript switch-statement conditional-operator