Pros
You ship code within your first two weeks. Hundreds of millions of people around the world care about what you do. Pay and benefits are great, particularly RSU offerings. You're expected to move up (and get raises, bonuses, more RSUs) quickly. You can do pretty much whatever you want and work on whatever you want. There aren't a lot of rules, other than security/privacy practices. Even on mobile apps, your code ships fast.
Facebook's onboarding process is the best I've ever seen, and I've worked at a lot of other major companies. You're hired as an engineer, not as someone to fill a specific job. Then you spend your first six weeks getting to know how all of the company works, filling in small holes on code bases that you aren't familiar with (web, Android, iOS, data analysis stuff), and learning what problems in the company you most want to work on, before you pick your team. Every large software company should be doing this.
Cons
They do claim ownership of code you write outside of work, unless you run it by legal first.