为什么在函数中定义分块对象(因为缺少更好的术语)有效 JavaScript?
Why is defining chunked objects (for lack of a better term) in a function valid JavaScript?
我最近阅读了 this article 单元测试 React。
作者在其中使用了这样的语法:
describe('ClickCounter component', async assert => {
const createCounter = clickCount =>
render(<ClickCounter clicks={ clickCount } />)
;
{
const count = 3;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
{
const count = 5;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
});
我感到困惑的部分是以 assert
作为参数的回调函数的内容。
在其中,他只是将一个对象一个接一个地链接起来。他基本上是这样做的:
const myFunc = () => {
{
// object that confuses me, with promise (`assert`) which resolves
}
{
// another object
}
}
并且以某种方式执行了这些对象中的代码。我从未在 JavaScript 看过的任何课程或读过的书中看到过这样的代码。我也从未体验过在任何其他库或框架中使用过这种语法。但是,我测试了它并且代码有效,测试全部 运行.
请注意他也从不 returns 任何事情。即使他使用关键字 async
他也没有 await
任何东西。
为什么这些分块对象有效 JavaScript?它是如何工作的?对此有明确的命名法吗?我查看了 MDN(和 Google)但没有找到任何东西。
你看到的叫做compound statement
。
我最近阅读了 this article 单元测试 React。
作者在其中使用了这样的语法:
describe('ClickCounter component', async assert => {
const createCounter = clickCount =>
render(<ClickCounter clicks={ clickCount } />)
;
{
const count = 3;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
{
const count = 5;
const $ = createCounter(count);
assert({
given: 'a click count',
should: 'render the correct number of clicks.',
actual: parseInt($('.clicks-count').html().trim(), 10),
expected: count
});
}
});
我感到困惑的部分是以 assert
作为参数的回调函数的内容。
在其中,他只是将一个对象一个接一个地链接起来。他基本上是这样做的:
const myFunc = () => {
{
// object that confuses me, with promise (`assert`) which resolves
}
{
// another object
}
}
并且以某种方式执行了这些对象中的代码。我从未在 JavaScript 看过的任何课程或读过的书中看到过这样的代码。我也从未体验过在任何其他库或框架中使用过这种语法。但是,我测试了它并且代码有效,测试全部 运行.
请注意他也从不 returns 任何事情。即使他使用关键字 async
他也没有 await
任何东西。
为什么这些分块对象有效 JavaScript?它是如何工作的?对此有明确的命名法吗?我查看了 MDN(和 Google)但没有找到任何东西。
你看到的叫做compound statement
。