ES6ではexportとimportが追加されてモジュール化が明示的にできるようになりました。 自分はサーバサイドをScalaで書いているのですが、 Scalaのimportなどと比べると、ES6は結構違ったので、 気づいた点をまとめてみました。 > ファイル名が明示的ファイル名が明示的 ScalaやGoにはコンパイルがあるので、importを宣言する場合ファイル名を指定する必要がないが、ES6ではimportするときファイル名を明示する必要になる。 つまり、Scalaのimport FooはES6ではimport Foo from "./Foo"となる。これはどうしようもない。同じスクリプト言語のPHPですらオートローダーがあるのに…。 > ES6は"public"であることを明示する派ES6は"public"であることを明示する派 ScalaにもES6にもパッケージのプライバシーがある
![ES6のexport/import構文をScalaと比べながら解説](https://cdn-ak-scissors.b.st-hatena.com/image/square/f8ffe3526ebb0f03bf78c043a1c7a6c84617d909/height=288;version=1;width=512/https%3A%2F%2Fwww.datocms-assets.com%2F29850%2F1593190022-pastedimage20200627146.png%3Ffm%3Dpng%26mark64%3DaHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9NDAwJmg9NjQmZml0PWNyb3AmYmxlbmQ2ND1hSFIwY0hNNkx5OTNkM2N1WkdGMGIyTnRjeTFoYzNObGRITXVZMjl0THpJNU9EVXdMekUxT1RFNE16TXlPVEF0WVhaaGRHRnlOVEV5TG1wd1p6OXRZWE5yUFdWc2JHbHdjMlVtWm0wOWNHNW5KbmM5TWpVMkptZzlNalUyJmJsZW5kLWg9NjQmYmxlbmQteD0wJmJsZW5kLXk9MCZibGVuZC1tb2RlPW5vcm1hbCZtYXJrNjQ9YUhSMGNITTZMeTloYzNObGRITXVhVzFuYVhndWJtVjBMMzUwWlhoMFAzUjRkQzFoYkdsbmJqMXRhV1JrYkdVbE1rTnNaV1owSm5SNGRDMW1iMjUwUFhOaGJuTXRjMlZ5YVdZbE1rTmliMnhrSm5SNGRDMWpiMnh2Y2oweU1qRTRNVFltZEhoME5qUTlZek5XY0dKbkpuUjRkQzF6YVhwbFBUTXdKbWc5TmpRJm1hcmsteD02NCZtYXJrLWFsaWduPW1pZGRsZSUyQ2xlZnQ%26mark-align%3Dbottom%252Cleft%26mark-x%3D100%26mark-y%3D496%26blend64%3DaHR0cHM6Ly93d3cuZGF0b2Ntcy1hc3NldHMuY29tLzI5ODUwLzE1OTMxNTQ2MzYtdHJhbnNwYXJlbnQtcGl4ZWwucG5nP3c9MTIwMCZoPTYzMCZmaXQ9Y3JvcCZtYXJrNjQ9YUhSMGNITTZMeTkzZDNjdVpHRjBiMk50Y3kxaGMzTmxkSE11WTI5dEx6STVPRFV3THpFMU9UTXhOVEE1TkRBdFkzSmhablJ6YldGdUxUQXhMbkJ1WncmbWFyay1hbGlnbj10b3AlMkNjZW50ZXImbWFyay13PTI1MCZtYXJrLXk9ODAmYmxlbmQ2ND1hSFIwY0hNNkx5OWhjM05sZEhNdWFXMW5hWGd1Ym1WMEwzNTBaWGgwUDNSNGRDMWhiR2xuYmoxdGFXUmtiR1VsTWtOalpXNTBaWEltZEhoMExXWnZiblE5YzJGdWN5MXpaWEpwWmlVeVEySnZiR1FtZEhoMExYQmhaRDB4TURBbWRIaDBMV052Ykc5eVBUSXlNVGd4TmlaMGVIUTJORDFTVmsweU5EUkhkVnBZYUhkaU0wb3dUREpzZEdOSE9YbGtUMkZ1YVMxaFYyZ3RUME5yYkU1cVdWZDRhRFEwUjI4MWNTMVZORFJITlRRMFIzRTBORWROTkRSTFNqWkxaV28yUzNGekpuUjRkQzF6YVhwbFBUVTFKbmM5TVRJd01DWm9QVFl6TUEmYmxlbmQtbW9kZT1ub3JtYWw%26blend-mode%3Dnormal)