Even if you didn’t see Suicide Squad and somehow escaped the reviews of it and, like, also didn’t hear the horror stories about Jared Leto’s Joker, you’d already know that it would never have topped Heath Ledger’s Joker in The Dark Knight anyway. Not only is Ledger’s Joker an iconic performance, his character was also the most perfect antagonist there’s ever been for Batman (or maybe, for any superhero). Lessons from the Screenplay analyzes what an antagonist should be and shows how The Dark Knight’s Joker nails it perfectly.
Heath Ledger’s Joker is exceptionally good at attacking Batman’s weakness, rendering Batman’s strength and intimidation useless and using Batman’s moral code (that he can’t kill) against him (because Joker needs to be killed). The Joker also forces Batman to make choices to reveal his true character but also outsmarts him, like when Batman chose to save Rachel over Harvey Dent and ended up with Dent anyway.
But the most important thing that makes Joker the ultimate antagonist is that he and Batman want the same thing: Gotham. Batman wants to save it. The Joker wants it to be in chaos.