The reason for all the fiddly syntax in languages that are considered unsuitable for teaching to beginners isn't to make programs harder to write: it's to make them easier to debug. If a program written in a language with a flexible and forgiving syntax doesn't do what you want, you sometimes have to figure out what you really told the computer to do before you can start figuring out how those instructions are wrong.
JavaScript has a feature called automatic semicolon insertion, which is meant to make it easier for people who shouldn't be writing programs to write programs. It might be OK on its own, but it interacts badly with other features that are supposed to benefit people who shouldn't be writing programs. Broadly speaking, it says that if a line doesn't end in a semicolon, but would be syntactically correct if it did end in a semicolon, the interpreter assumes that you meant to put a semicolon there.
For instance, if you have this at the end of a function:
return
true;
JavaScript interprets that as return; true; which causes the function to return an undefined value. The true; after it is ignored, firstly because JavaScript doesn't complain about unreachable code, and secondly because every statement in JavaScript is really an expression that returns a value. Often you don't care what the value is, so the interpreter doesn't complain if you throw it away.