Another thing on the technical side is using "var" is frowned upon. It was replaced with "let" in 2015. The new keyword has over 96% browser support and is safer.
The gist of it is "var" makes it easy to produce silent failures. That means your code will run but the results will be wrong and you'll wonder why because there's no error message. Uncountable hours were wasted fiddling with logic that wasn't wrong in the first place but worked on "corrupted" inputs. For your own sanity use "let" unless you cannot (legacy systems). You won't need to consider anything, it just works better. If you want to learn specifics, relevant topics are scopes, variable hoisting and the global object.
Another thing on the technical side is using "var" is frowned upon. It was replaced with "let" in 2015. The new keyword has over 96% browser support and is safer.
The gist of it is "var" makes it easy to produce silent failures. That means your code will run but the results will be wrong and you'll wonder why because there's no error message. Uncountable hours were wasted fiddling with logic that wasn't wrong in the first place but worked on "corrupted" inputs. For your own sanity use "let" unless you cannot (legacy systems). You won't need to consider anything, it just works better. If you want to learn specifics, relevant topics are scopes, variable hoisting and the global object.