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