As JavaScript projects grows in sizes, they become difficult to maintain. There are a various reasons for this. First,
JavaScript was never designed to build large-scale applications. Its original purpose was to provide small scripting functionality for a web page.
Until recently, it didn’t provide tools and constructs for structuring large projects, such as classes, modules, and interfaces.
Also, JavaScript is dynamically typed. It doesn’t support features such as IntelliSense.