Someone who thinks they know everything that is to be known. They argue about things that they have no knowledge about. They either act like they know or they really believe they know what they are talking about on any given subject. They are arrogant and believe they are always right. See arrogant
I know what a know-it-all is because I am one.