Maybe I'm just looking at the past through rose-colored glasses, but I feel like the golden years of startups are behind us. But I'll do my best anyway.
Pros:
1) Startups are still more willing to hire people with "nontraditional" backgrounds into technical roles. English major who bootcamp'd or self-taught yourself coding? Never attended college? Most startups aren't going to turn their nose up at you.
2) Assuming the company has product-market fit (or is nearing it): A great way to gain a holistic understanding of how software is made, delivered, consumed, and ultimately changed based on market response. This is both a technical and business learning experience.
3) You won't be pigeon-holed, as everyone has to wear more than one hat in startup land.
4) Doesn't apply to everyone, but if there's a particular niche you're into, it's much easier to get hired by one of those niche's startup's than to join a bigger tech firm and then hope you get assigned to one of those groups (which are probably highly competitive and extremely sought after... so good luck with that.)
Cons:
1) They fail, sometimes spectacularly
2) They often operate at such a small scale that you'll never encounter entire classes of interesting technical challenges
3) If it's early stage: You will ship crap code. Constantly. Can be frustrating if you're a perfectionist or even just looking to push your craft forward
4) Equity offers are stingy, but even if they weren't, it can take 7-10 years for a big exit. Will you stick around long enough?
5) Because these companies are small, any toxic people in the org will feel omnipresent
6) There are now some fairly active "problematic" investors (Saudi Arabia). You may not like the idea of taking so-called "Blood Money"