引数部分にある波括弧はどういう意味ですか？


[Layout Component - Assets, Metadata, and CSS | Learn
Next.js](https://nextjs.org/learn/basics/assets-metadata-css/layout-component)

に下記の記載があります。

[code]

    export default function Layout({ children }) {
      return <div>{children}</div>
    }
    
[/code]

引数部の `{ children }`の意味はなんでしょうか？  
JavaScriptってこんなところに`{}`は許されたでしょうか？  
Next.js特有の文法なのか、babelかなにかの特殊な文法でしょうか？




[分割代入(Destructuring
assignment)](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)
という 構文 (代入演算子)で, それを利用したものです

[code]

    // オブジェクトのプロパティーと同じ名前の変数で受け取る
    function fn({id}) {
      console.log(id); // 123
    }
    fn({id: 123})
    
    const o = {p: 42, q: true}
    // オブジェクトのプロパティーとは異なる名前を持つ変数で受け取る
    function fn2({p: foo, q: bar}) {
      console.log(foo); // 42
      console.log(bar); // true
    }
    fn2(o)
    
[/code]




[分割代入(Destructuring
assignment)](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)
という 構文 (代入演算子)で, それを利用したものです

[code]

    // オブジェクトのプロパティーと同じ名前の変数で受け取る
    function fn({id}) {
      console.log(id); // 123
    }
    fn({id: 123})
    
    const o = {p: 42, q: true}
    // オブジェクトのプロパティーとは異なる名前を持つ変数で受け取る
    function fn2({p: foo, q: bar}) {
      console.log(foo); // 42
      console.log(bar); // true
    }
    fn2(o)
    
[/code]

