ES modules have the concept of "default export" and "default import", which looks like this:
export default foo; // roughly sugar for: const tmp = foo; export { tmp as default }
import d from './myModule.js'; // roughly sugar for: import { default as d } from './myModule.js'
This concept is not one that I have met in any other module systems in other languages. It caused much confusion for me when I first met it, and it seems like it causes much confusion for other people too. The concept also seems to provide no additional power, compared to named exports.
So: why does this "default export" feature exist? What problem is it solving? The spec doesn't seem to provide any reasoning for it.