es6のアロー関数は通常の関数と同じ？

[code]

    const Message = props => <div>{props.msg}</div>
    
[/code]

と、

[code]

    function Message(props) {
        return (
            <div>{props.msg}</div>
            )
    }
    
[/code]

は同じですか？

どこかで確かめることはできますか？




違います。

通常の関数定義によって定義された関数は `new` で呼び出せますが、アロー関数はできません。

[code]

    var Foo = function(){};
    var foo = new Foo();  // OK
[/code]

[code]

    var Foo = () => {};
    var foo = new Foo();  // エラー
[/code]

また、今回の例では出てきませんが、通常の関数とアロー関数では `this` の扱いにも差があります。  
より詳しくは、本家 Q&A の ["Arrow function vs function declaration / expressions: Are
they equivalent /
exchangeable?"](https://stackoverflow.com/q/34361379/5989200) や MDN
の[「アロー関数」](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions)をご覧ください。

(このような問題は、英語で "〇〇 vs ××" と検索すると上手く出てくるような気がします。また、最終的には仕様を読むのが良いと思います。)

