JavaScript is a forgiving language. Some of its syntax is optional, and the language recovers from errors with more grace than many others. But this hand-holding comes with a penalty: it can be easier to introduce bugs, and inconsistent code is harder to read.