Choosing a diff granularity
The three modes answer different questions. Line diff, the mode Git uses, treats a line as atomic — change one character and the whole line reads as replaced. That is exactly right for code, where a line is a meaningful unit, and unhelpful for prose, where a paragraph is one long line.
Word diff is the mode to use for writing. It shows that a sentence changed one adjective rather than reporting the entire paragraph as rewritten. Character diff goes finer still, which is useful for spotting a transposed digit in an ID or a single altered character in a hash — and overwhelming for anything longer.
Ignoring what does not matter
Two options exist because two kinds of difference are usually noise. Case differences matter in code and rarely in prose. Whitespace differences almost never matter and are almost always present — a re-indented file, a change of line endings between Windows and Unix, or a trailing space will otherwise mark every line as changed and bury the one real edit.
Related tools
To clean up a list before comparing it, use remove duplicate lines and sort lines alphabetically — sorting both sides first turns a reordering into no diff at all. To compare formatted code fairly, run both sides through the JavaScript formatter or JSON formatter first.