首页 > 解决方案 > 为什么这是有效的语法?

问题描述

在重构一些代码时,我意外地发现这是有效的语法(或者至少不会在 Firefox 中导致解析器错误):

const {} = somefunc();

somefunc返回 anobject并且 curly 应该包含用于解构的变量名称,当时我还没有决定这些名称是什么,所以我暂时将它们留空。

编辑器没有突出显示语法错误,所以出于好奇我对其进行了测试,令 Firefox 实际上对这种语法没有任何问题感到惊讶。

为什么这个语法有效?它真的做了一些奇怪的事情吗?

标签: javascriptdestructuring

解决方案


是的,像这样的空解构非常好,只是没用。这在运行时语义中有所介绍:DestructuringAssignmentEvaluation

带参数值。

对象分配模式:{}

  1. 履行 ?RequireObjectCoercible(值)。

  2. 返回正常完成(空)。

它所做的一切(在RequireObjectCoercible中)是要求右侧不为空也不为未定义。


推荐阅读