HTML, CSS, and JavaScript are the three pillars on which web applications work. HTML is the framework, CSS is a nice visual design (CSS3 now allows for animations), and JavaScript is logic, interactivity, and user interaction. When you see dynamic elements on a page that you can interact with – turn on an audio or video player, build a route on a map, etc. – you can be sure that JavaScript was involved. So a Front-end or JavaScript engineer (developer) needs all three technologies. But let’s take a closer look at JavaScript first.
The main features of this language are dynamism, flexibility of working with functions, and versatility. It is supported by all modern browsers, easily integrates with layout (HTML), and allows you to customize communication with the server. Among other advantages:
- The data type is determined when a variable or constant is assigned a value.
- In JavaScript, functions can be both executed and returned, passed as parameters to other functions, and assigned as variable values.
- The object-oriented programming methodology allows you to represent a program as a collection of objects.
- It allows you to partially transfer business logic from the server to the user side, i.e. execute code in the browser, which in turn reduces the load on servers.
- JavaScript has a developed infrastructure and an active community. Thus, web developers can work with a large number of libraries and frameworks such as React, Angular, and Vue, several packagers such as Webpack, Gulp, and auxiliary libraries such as Lodash, axios, and others.
Disadvantages: updates, files, and interpretation
On the one hand, JavaScript is easy because you can see the result in the browser. On the other hand, it requires constant updates that you need to keep track of.
It is worth pointing out several limitations. The main one is working with the file system, i.e., you cannot read files. In addition, JavaScript does not support remote access to the system, which makes it inconvenient to use the language for network applications.
Particular attention should be paid to client-side security, as some omissions and errors in the code can be exploited by attackers.
In addition, JavaScript code can also be interpreted differently by browsers, and older versions such as IE 9 (Internet Explorer 9) do not support it at all. Because some browsers read JavaScript code slightly differently, a website or web application may not display or function correctly. Dynamic typing is also sometimes considered a disadvantage. But this can be fixed by using TypeScript (a transpiler for JavaScript).