javascript - 在 Javascript 函数中未将表达式赋值给值是否合法?

标签 javascript expression

我确定这是重复的,但我找不到原始问题,因此如果您知道,请链接到该问题。

在 Javascript 中,我目前正在编写一个函数,我很想这样写:

function toggleDropdown() {
  isOpen() ? closeDropdown() : openDropdown(); 
}

但是,这感觉有点奇怪,因为三元运算符是一个表达式,并且 closeDropdownopenDropdown 都没有返回值(除了隐式未定义),而且我我没有将三元的返回值分配给任何东西。

我意识到Javascript似乎允许你任意计算并让表达式不分配给任何东西。例如,显然下面的代码不会引发任何错误:

function test() {
  55;
  "asdf";
  let x = 12;
  "qwer";
  12;
}

这对我来说有点奇怪?我想知道,这段代码写起来“可以”吗?它似乎没有抛出任何错误,但我担心它会在 Babel 或其他东西的某种编译步骤中中断,因为这段代码看起来有点不正统。或者也许它完全受支持?

最佳答案

一切都很好。您不必对表达式的结果执行任何操作。

这实际上与调用返回值的函数没有什么不同,而不是分配或使用该值。

对于原始值,如果您正在优化代码,它们很可能会得到优化。

话虽如此,您可能有一个 linter,它被配置为实际上针对未分配的表达式发出警告或错误,因此在这种情况下您的有效语法将显示为问题。

关于javascript - 在 Javascript 函数中未将表达式赋值给值是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70981113/

相关文章:

javascript - 范围值未显示在 View 中

java - 字符串解析机制获取值

c# - Lambda 表达式分配源对象

javascript - Node JS 关闭读取流

javascript - 创建用户后如何调用 updateProfile()

c# - 我可以使用表达式设置结构的属性吗?

c++ - 是否有一个 C/C++ 库可以让你找出一组表达式是否互斥?

java - antlr4 简化数学表达式

javascript - 页脚模糊了简单的 1 列夹在 CSS 布局中的内容

javascript - 将变量传递给 require.context?