我的一位同事写了ES6代码......
return map(orderedContentUuids, contentUuid => { uuid: contentUuid });
你可能猜测他打算返回对象{uuid: contentUuid }
,但由于它是一个箭头函数,大括号{
实际上会启动一个新块。 (正确的代码是return map(orderedContentUuids, contentUuid => ({ uuid: contentUuid }));
)。
但是,出乎意料的是,此代码转换并运行时没有错误。没有错误,因为uuid: contentUuid
似乎评估为contentUuid
。
您可以看到,如果您放入JavaScript控制台foo: 'bar'
,它的评估结果为"bar"
。
咦?这是怎么回事。从什么时候开始就是有效的JS?
答案 0 :(得分:6)
糟糕!我只是想通了。
foo: 'bar'
被评估为"标签",我没有意识到这是一个JavaScript功能。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label