Gavroche is a plucky young scamp who knows the streets and won't let anyone tell him what to do. But don't start going ruffling his hair or pinching his cheeks, because that adorable boyish exterior hides an inner darkness. He is, as the narrator tells us,
[A] boy aged eleven or twelve who would have been an admirable embodiment of the gamin we have depicted except for the fact that, while the laughter of his years was on his lips, there was only darkness and emptiness in his heart. (126.96.36.199)
Whew. That's pretty harsh for an 11-year-old who should be playing Minecraft or collecting Magic cards, but it's understandable—and probably inevitable. Gavroche didn't exactly have the luck to be born into a warm and loving family, because "his father never gave him a thought and his mother disliked him" (188.8.131.52). No surprises there: his parents are the Thénardiers, and someone needs to call CPS stat, because these people shouldn't have custody of an iguana, much less a child or three. (For more about the charming pater familias, check out Thénardier's Character Analysis.)
Like Éponine, though, Gavroche manages to keep some tiny spark of goodness inside all that emptiness and darkness. His goodness mostly shows up as generosity. Passing a shivering girl on the street for example, Gavroche "unwound the thick wool from around his neck and draped it over her skinny shoulders, and the muffler again became a shawl" (184.108.40.206). Remember, this is a boy who's probably never been entirely warm in his life—and here he is giving away a prime piece of clothing.
On top of that, Gavroche has absolutely no fear of danger. He commits fully to the revolutionaries' cause, even though he's just a kid. He runs out to get ammunition when the rebels are out, and then even dances in front of a bunch of shooting French army officers while he gathers ammunition for a group of rebels. In other words, this kid scrappy, fearless, and unfailingly generous. When you put it like that, Minecraft doesn't sound so appealing after all.