Static import is hoisted and always loads. import('./heavy.js') is a function that returns a promise, so you can load code only when needed (a route, a click), shrinking the initial bundle. Pair with await. This is the foundation of lazy loading and route-based code splitting.