我确定这是重复的,但我找不到原始问题,因此如果您知道,请链接到该问题。
在 Javascript 中,我目前正在编写一个函数,我很想这样写:
function toggleDropdown() {
isOpen() ? closeDropdown() : openDropdown();
}
但是,这感觉有点奇怪,因为三元运算符是一个表达式,并且 closeDropdown
或 openDropdown
都没有返回值(除了隐式未定义),而且我我没有将三元的返回值分配给任何东西。
我意识到Javascript似乎允许你任意计算并让表达式不分配给任何东西。例如,显然下面的代码不会引发任何错误:
function test() {
55;
"asdf";
let x = 12;
"qwer";
12;
}
这对我来说有点奇怪?我想知道,这段代码写起来“可以”吗?它似乎没有抛出任何错误,但我担心它会在 Babel 或其他东西的某种编译步骤中中断,因为这段代码看起来有点不正统。或者也许它完全受支持?
最佳答案
一切都很好。您不必对表达式的结果执行任何操作。
这实际上与调用返回值的函数没有什么不同,而不是分配或使用该值。
对于原始值,如果您正在优化代码,它们很可能会得到优化。
话虽如此,您可能有一个 linter,它被配置为实际上针对未分配的表达式发出警告或错误,因此在这种情况下您的有效语法将显示为问题。
关于javascript - 在 Javascript 函数中未将表达式赋值给值是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70981113/