What is JavaScript? Bringing Interactivity and Animation to the Web - Hiring Headquarters

JavaScript (JS) is front-end web development: nearly everything you interact with on a website is thanks to this script. Before it, sites were static HTML sites with formatting and no interactivity. But JS changed that as the first client-side language. It’s used to build the side of the site that the user sees and interacts with.

You can’t talk about front-end technology without touching on JavaScript, and it includes a vast umbrella of technologies under it that have streamlined, supported, and built upon its capabilities: There’s an entire server-side JavaScript programming environment, Node.js, with technologies like React, Express.JS, and Koa.js; front-end frameworks like Ember.js and AngularJS; JSON, a JS object notation language; libraries like jQuery, compilers, AJAX, and more.

Here’s an introduction to JavaScript, what it can do for your site, and what JavaScript tools and frameworks have evolved in its wake.

JAVASCRIPT AT A GLANCE

Along with HTML and CSS, JavaScript is arguably the most ubiquitous of the client-side scripts. If HTML dictates the content of a page, and CSS dictates the look and feel, JavaScript dictates the behavior of a page. JavaScript manipulates both the CSS styles and HTML attributes of a page, changing content and the way things look when a user interacts with it.

JavaScript is technically referred to as “ECMAScript,” and 2015 is the newest version of the ECMAScript standard. This version is a pretty significant update to the language—in fact, the first substantial update to the language since it was standardized back in 2009.

How It Works

It’s embedded right into the HTML of a page between tags. Or, an external JS file can be linked, which is helpful if multiple pages are sharing the same chunks of code.

There are two main components to JavaScript:

  • Functions are blocks of JS code that run on command, and “statements” are instructions that are executed by the browser. All of JS “code” is essentially a string of statements that are run in order, one by one.
  • Objects are the core principal of JavaScript. Everything is an object, and all objects have variables, or “properties,” and “methods.”

JavaScript, Concurrency, and the Event Loop

A big difference between JavaScript and other competing languages like Ruby, Python, or Java, is that it achieves concurrency (the execution of several instruction sequences at the same time) through a programming model called the event loop. When an event such as a mouse click or a mouseover occurs in the browser, the JavaScript runtime stores a message in a message queue. If a callback function exists for the queued message, it’ll be executed the next time it’s encountered within the loop. In this way, events can trigger callback functions when a response is available sometime in the future. The end result is that a JavaScript application can handle concurrent operations on a single thread. This frees the developer from the additional programming overhead incurred when managing the application state across multiple threads.

Advantages of JavaScript

  • It’s able to run dynamic sites on anyone’s browser—period. This cross-browser support is made seamless with libraries like jQuery.
  • JavaScript works well (and fast) without requiring a lot of memory. Some JavaScript applications can even run without connecting back to a web server, which means they’ll work in a browser with or without an internet connection.
  • It moonlights as a server-side programming language via Node.js, a back-end framework that uses JavaScript runtime to build data-intensive apps (e.g., anything real-time, like a chat room).
  • It’s easy to learn. JavaScript can be learned in a few weeks even though it’s 19 years old. Compared with a language like C++, which can take years to learn and has numerous constructs, it’s a quick study.
  • It pairs with Karma for excellent testing capabilities. Karma is a JavaScript test runner that runs on Node.js and works well with any JavaScript framework. It allows developers to get instant feedback on how the code they’ve written will perform.
  • Mobile flexibility: JavaScript has numerous extensions available for responsive mobile app development—including Bootstrap and jQuery Mobile. Plus, it’s the basis for React Native, Facebook’s mobile UI framework.
  • JavaScript can be compiled from code written in different languages through source-to-source compilers like CoffeeScript. With TypeScript, a compiler created by Microsoft, a high-level superset of JavaScript (with the same JS syntax), is compiled into plain JavaScript.
  • It’s more than just a script. It’s a full-fledged programming language—Mozilla is written in JavaScript.

JAVASCRIPT ENGINES

JavaScript is a high-level programming language—that means it’s human-readable, flexible, and relatively easier to implement than a language like C. However, JavaScript must be compiled to native machine code in order for your computer to read and execute it. Enter the JavaScript engine, a process virtual machine designed to interpret, compile, and execute JavaScript code. It’s a big part of the speed arms race between browsers, but is also used to power any technology that requires a virtual machine, like Node.js and its role in server-side development. Below is a list of some of the more popular JavaScript engines and the technologies they power.

  • JavaScript V8: Google Chrome, Opera, Node.js
  • SpiderMonkey: Mozilla Firefox
  • JavaScriptCore: Safari
  • Chakra: IE, Edge

In general, a JavaScript engine provides the language everything it needs to run in a browser—an interpreter, a compiler, and a runtime environment.

JAVASCRIPT FRAMEWORKS

JavaScript frameworks streamline more complicated commands into simple blocks of JS code, making programming fast and easy. Here’s a quick look at a few of the most popular JS frameworks.

  • jQuery: The most popular JavaScript library out there, it’s the “write more, do less” framework that makes JS behave the same in different browsers. Used by sites like IBM and Netflix, it boils down common JS tasks that require many lines of code into one-line bundles.
  • AngularJS: Extremely robust, geared toward desktop apps, and perfect for data-heavy sites, the AngularJS framework provides a great module-based structure for building complicated applications easily. It’s all about simplification, extending HTML, and using the shortest code possible.
  • Backbone.js: A lightweight JS framework that’s a pared-down alternative to more full-featured frameworks, it’s all about minimalism. Backbone is used by sites like Airbnb and Pinterest.
  • Bootstrap: A mobile-first framework, it uses HTML, CSS, and JavaScript to facilitate rapid responsive app development.
  • Ember.js: Another lightweight JS framework, Ember has been used by sites like Groupon and Zendesk. It hinges on site performance and comes with a built-in data module and template engine. It works particularly well with Ruby on Rails and is the best approach for developers familiar with object-oriented programming languages like Ruby, Python, C#, and Java.
  • Meteor JS: An open-source, real-time framework, it was built on top of Node.js and works closely with MongoDB, a leading NoSQL open-source database.
  • Node.js: A server-side development environment designed to use JavaScript to build back-end applications, it has its own slew of frameworks, task-runners, and plugins.
  • Express.js: This server-side JavaScript framework runs on the Node.js platform.
  • Koa.js: This next-generation framework for Node.js follows in Express’ footsteps.
  • Prototype: A framework with a built-in API, it makes common JS tasks more streamlined to code.
  • MooTools: Another JS framework with an API, it also streamlines common tasks but with a few extras, including effects and animation.
  • ReactJS: Facebook’s JavaScript library that’s excellent for building web application UIs. React Native is the mobile library for building natively rendered mobile application UIs.

Next, we’ll cover some tips and skills to look for when hiring a JavaScript developer to build the interactive front end of your site or application.

Ready to Hire a Front-End JavaScript Developer?

Every front-end web developer needs to know JavaScript, but what other client-side technology, languages, frameworks, and complementary skills should you look for when hiring a JavaScript pro to develop the front end of your site?

Core skills to look for:

Browse skilled JavaScript freelancers on Upwork to help with your front-end web development project today.