JavaScript is a scripting language that completes the triad, along with HTML and CSS, of the core technologies used to build websites



Course Duration

42 hrs 51 mins








  • HTML

    HTML is the entry point of running JavaScript programs on the web, hence knowledge of HTML is required.

  • CSS

    Although we won't be using much CSS in this course, it still is an integral technology for building webpages and is likewise required as well.

Course overview

JavaScript is a client-side scripting language used together with HTML and CSS to build dynamic and interactive webpages. It completes the front-end development triad together with HTML and CSS and has a high demand out in the market. It has got a large supportive community with the help of which you can solve nearly any problem you face while developing programs in it.

JavaScript is a fairly easy-to-learn language as you can see from the statistics (on the right or below) and is a good choice for beginners for their first programming language as it can give them the feel of a programming flavor and yet not make things overwhelming. However its measure of ease is relative to other programming languages out there like C, C++, Java etc. These languages are quite complicated to understand and write programs in and have a low-level nature as compared to JavaScript's high-level one. So in short if you've learnt, or tried to learn any of these languages then learning JavaScript will be a piece of cake for you!

For those of you who haven't learnt any of these, the good news is that even for you JavaScript will be a piece of cake because of this course!

Learning outcomes

  1. JavaScript basics where to write JavaScript code, how to write it, how to use the console etc.
  2. How to work with numbers, strings (text), and booleans
  3. How to solve conditional problems using if..else statements and iterational problems using for and while loops
  4. How to work with data structures like arrays and objects
  5. How to work with functions and complex topics like closures and recursions
  6. How to work with objects and the importance of Object-Oriented Programming in general terms
  7. How to employ constructors and prototypes to emulate the behavior of OOP classes and sub classes
  8. How to work with HTML DOM and the Events API in building page interactivity and dynamicality by querying HTML and CSS and responding to user actions like clicking a button
  9. How to use JavaScript predefined functions to calculate dimensions of elements, viewports, including or excluding padding, borders, margins, outlines etc.
  10. How to work with HTTP related stuff using JavaScript, like cookies.

Table of contents

  1. Foundation

  2. Numbers

    Here we will get introduced to concepts in JavaScript numbers like integers, floats,parsing numbers from strings and much more stuff like that. We will also see some common methods deployed in JavaScript on top of the Math object.
  3. Strings

    Strings are an important concept in the programming world, and so are they in JavaScript. This course will introduce you to a ton of concepts, properties and methods of strings. We will also discover regular expressions - a very powerful way to match strings.
  4. Conditions

  5. Loops

    In loops, we extend the idea of conditions to repeat a block of code over and over again until a condition is being fulfilled. Loops are an integral part of computing since they can automate thousands of lines of code in probably few lines.
  6. Arrays

  7. Functions

  8. Objects

    The heart of JavaScript will be detailed in this very unit - objects. We will look at how to create objects and then move on to explore advanced stuff like constructors and prototypes explained in a clear and easy manner.
  9. Exceptions

    Handling errors is an integral part of all modern-day computer programs. In this unit, we'll see how to effectively handle errors in JavaScript using the try...catch set of statements.
  10. HTML DOM

  11. CSSOM

    The next logical step after learning how to access HTML elements in JavaScript is to be able to compute their dimensions. This unit teaches us all the aspects of such computations.
  12. Events

  13. Drag and Drop

    Drag-and-drop is common in native desktop applications. But JavaScript is by no means behind. This unit aims at teaching us how to set up a simple drag-and-drop program using minimal JavaScript. We'll see, in detail, things such as draggable elements, drag data and what exactly are dropzones. Finally, we'll cover some drop effects before ending with the final unit quiz.
  14. (opt) Touch Events

    With the rise of touch-based devices, it's difficult to ignore the importance of touch events in JavaScript. In this unit, we'll start by discovering the history of touch events, followed by understanding how to set up touch event handlers in applications. Finally, we'll explore the two most important interfaces when working with touch events — TouchList and Touch.
  15. Misc

    In this unit, we'll cover some of the miscellaneous concepts of JavaScript that couldn't be grouped under one single category. These include APIs such as Date, History, Location, and some global functions such as setTimeout() and setInterval().
  16. Project: Analog Clock

    This is the first of the projects that you'll create in this course. The project is to create an analog clock, similiar to the ones mounted on the walls of our house.


  • Is learning JavaScript difficult?

    Frankly speaking, JavaScript is not at all difficult to learn, but that's not to say that it doesn't have its complexities and surprises. Fortunately, we've got you covered — this course aims at making you an expert in JavaScript, one of the most celebrated languages of the era.

  • How long does it typically take to learn JavaScript?

    While you can get comfortable with the basics in less than a week, learning JavaScript comprehensively can take a long time. How much? Well, giving a precise quantitative measurement isn't obviously possible, but it can be somewhere in between 2 - 6 months. It's a huge language with tons and tons of APIs to master, all of which require a sufficient time span to get used to.

  • Will this course provide me with sufficient knowledge to be able to build web applications using JavaScript?

    Absolutely yes. You'll acquire logical reasoning and programming skills through this course, both of which go hand-in-hand once you start building complex web applications in JavaScript.

  • What if I get stuck somewhere in the course?

    If you're having a hard time understanding a given concept in the course, feel free to reach out to me at, describing the issue you're facing. I'll try my level best to help you out.

  • Some important topics are missing from the course. Why is that so?

    The courses on Codeguage are released while they are still under construction so that learners can get early previews. As I continuously work on adding more and more content to the courses, if a given topic isn't covered today, there's a high chance that it's already under way and will show up very soon. You can follow Codeguage on Twitter to be updated with all the latest content releases.

  • How can I ask any general questions related to the course's content?

    Write to me at

It's different the 'Codeguage way'


When you have a robust foundation, with the fundamentals crystal-clear, your mind will intrinsically get that ability to handle any kind and level of complexity.


With a comprehensive resource that covers literally every aspect of a given topic, your time is spent practicing the learnt concepts, not resolving confusions and basic questions.


Coding is a detailed craft. Likewise, any resource trying to teach it in any way should be detailed as well, or else people will have to acquire those integral details from different places in a fragmented and haphazard manner.


Structure is vital to an intuitive learning experience of a given resource. Without structure, the right concepts get introduced at the wrong times, ultimately leading to confusion and breaking the desired flow of comprehension.

Let's start the learning!