Advanced JS Introduction

Chapter 1 9 mins

Learning outcomes:

  1. History of JavaScript
  2. ECMAScript 6
  3. Overview of this course

The beginning...

Since the old days of static HTML, the web has grown uncontrollably to accomodate numerous features and ideas that were back then considered to be completely impossible.

Perhaps the best example to justify this claim is the scripting language JavaScript. When HTML was introduced, browsers only provided a means to parse a given markup into a document, with no capabilities whatsoever to add interactivity to the document.

Then came in JavaScript, to address this very issue.

It gave developers move control over their webpages, whereby they could make decisions to modify their pages, and execute procedures on actions a user took.

With the advent of the HTML DOM and Events APIs, the language became even more practical in accomplishing these tasks, and hence, extensively utilised thorughout the web.

Newer and newer features continued to trickle into the scripting language and make it even more powerful amongst other programming languages and more popular amongst web developers.

A real blaster to this effect of popularity was the ECMAScript 6 specification.

It won many hearts!

ECMAScript 6

European Computer Manufacturer's Association International, or simply, ECMA International is the committee that works for standardising JavaScript accross all the platforms where it runs.

It's what makes the language behave the same way, be it used anywhere - on browsers or servers.

The committee holds discussions on what features to add or deprecate from JavaScript, and in regards to this, releases out a formal specification containing a detailed description of all the new features and key terms in the language.

Well, frankly speaking, it's not just detailed - it's exhaustive!

Technically, this specification defines core JavaScript - one that shall be provided at any platform where the language is used such as in browsers or servers (like Node.js).

ECMAScript is likewise the name given to core JavaScript - the basic language which lays out the foundation, which platforms can extend on their own by defining additional APIs.

It's nothing new; as some people understand it that it's a completely new language. It's not a new language, just core JavaScript.

As an example, the HTML DOM API is not a part of ECMAScript - this is because it's an API defined by web browsers.

Similarly, whatever is defined in ECMAScript is indeed available in JavaScript and Node.js - the two most popular implementations of ECMAScript.

Think of ECMAScript as bricks, and JavaScript and Node.js as buildings made from those bricks. The buildings don't just contain bricks - they contain much more, like furniture, steel structures and so on!

Assuming you've understood what ECMAScript actually is, the ECMA committee has been releasing, and is still in the process of drafting, new specifications of the language.

Each specification has improved the language in one way or the other, but by far the real spurt to this improvement has come from ECMAScript 6, also known as ECMAScript 2015, or ES6.

The '6' in this term refers to the fact that this is the sixth version of the language.

It has formalised countless features in core JavaScript, that include an extensively fine-tuned syntax, arrow functions, object destructuring, typed arrays, buffers, iterators and generators, promises and much more.

The list is endless - so much that you can find numerous books out there teaching only ES6!

Potential of JavaScript

Anyways, moving on, if we talk about the JavaScript language available today in all browsers, it's a completely rejuvenated and complex version of the JavaScript we knew just as far as a decade ago.

We now have functionalites to read user-selected files, display their content on the go, handle asynchronous operations more fluidly, and work with binary objects.

The modern language enables us to utilise resources more efficiently like by using intersection observers to monitor appearance of elements into the viewport, all asynchronously; the animations API to consider inactivity and slow down browser repainting accordingly and so on.

Not only this but we also get the extended functionality of iterators and generators to ease the idea of iteration - in fact, to give it more power and capability.

Promises are what give strength and simplicity to the previous callback style of executing asynchronous code.

Buffers and typed arrays are also available at our dispense to store and process binary numbers in raw memory. This is quite a useful thing to have if a developer wants to alter the binary content of a given file.

You may be surprised to know that the story doesn't end here!

With ECMAScript 6, we now have an elegant syntax to perform certain operation previously not possible without spanning multiple lines of code.

In short, the modern JavaScript language is a big deal to deal with!

Moving on...

Modern JavaScript can surely be called advanced JavaScript, just like we do, because a large portion of its features require one to understand complex topics.

Majority of the developers of JavaScript don't actually know these complex topics, and this can in turn make understanding even more complex topics more complex!

How complex did this sound?

The bottom line is that JavaScript is a highly powerful language with numerous powerful advanced features that numerous people are unaware of.

This course is specially crafted to address this concern.

You don't get to learn just JavaScript - you get to learn advanced JavaScript.

So are you ready to embark on the journey to further solidy your skills on the world's most popular programming language?

"I created Codeguage to save you from falling into the same learning conundrums that I fell into."

— Bilal Adnan, Founder of Codeguage