
Discover why JavaScript powers browser interactivity and how mastering it boosts web development skills and employability, with a structured path through basics, functions, types, syntax, and asynchronous concepts.
Explore the course repository on GitHub for lecture notes, templates, and a replay app to test JavaScript outputs, plus interview question setups like the this keyword.
Begin learning JavaScript by coding in the console, mastering operators and variables. Then explore conditionals, undefined, primitive values, arrays, objects, and loops, followed by a review quiz.
Explore the rule to place semicolons after every statement in JavaScript, covering declarations, control flow, iterations, and functions, plus how to write and read comments.
Explore arrays in JavaScript, learn about how arrays are mutable, dynamic length, zero-based indexing, and common methods like push and splice, with practical examples using laptop, speaker, and numbers.
Explore the basics of JavaScript objects, including creating objects, adding properties like name and age, and accessing them with dot and bracket notation, preparing you for loops and iteration.
Master JavaScript loops by using for, while, and do while constructs to repeat actions efficiently, while applying the dry principle and increment syntax like i++.
Master JavaScript functions by contrasting function declarations and function expressions, handling parameters and return values, exploring side effects, tip calculations, and anonymous and arrow forms through examples.
Discover how object methods leverage the this keyword to access properties like user name, years, languages, and company, and log profiles such as log status and log profile.
Explore how this behaves in arrow functions versus function expressions, causing undefined username and join error in methods. Restore this with a function expression and console checks.
Learn how callbacks are functions passed to a second function and invoked to control execution order, using for each, array methods, and arrow functions.
Explore JavaScript types in depth, from numbers and strings to arrays, objects, and functions. Learn the nuanced meanings of triple equals, true/false, and the difference between nil and undefined.
Discover why almost everything in JavaScript is an object, including arrays and functions, how property tests reveal objects, and the contrast between immutable primitives and mutable objects.
Explore null and undefined in JavaScript, showing their roles as absence of an object value and unassigned values, and compare their types, strict equality, and explicit type conversion.
Explore explicit type conversion in JavaScript, contrasting it with implicit conversions. Use wrappers like Number, Boolean, and String, and learn Date.now and array or string conversions for timestamps.
Discover how JavaScript's dynamic, weakly typed nature drives implicit type coercion, using type of, numeric and boolean conversions, and the array versus object underpinnings.
Explore the intricacies of JavaScript syntax by examining let, const, and var declarations, mutability, and scope, and demystify hoisting, along with template literals and ternary operators.
Master let and const declarations and mutability, showing reassignment rules, undefined initialization, and why primitives are immutable while objects (including functions) remain mutable.
Explore the differences between let, const, and var, and explain how block scope and function scope affect variable accessibility, including redeclaration rules and the role of hoisting.
Explore template literals for concise string construction, multi-line strings, and interpolation, then master the ternary operator to inline conditional expressions and produce dynamic, readable JavaScript outputs.
Explore property shorthand and destructuring assignment in JavaScript to write concise code for arrays and objects, including defaults, skipping indexes, and nested structures.
Explore key object methods in JavaScript, including Object.keys, Object.values, and Object.entries, to access, list, and pair grades from a grade map, and learn how Object.assign clones and merges with last-writer-wins.
Explore the spread syntax, three dots, and their use in cloning and merging objects and arrays, applying to function arguments, with notes on the object not assigned alias.
Explore object.is, references, and shallow cloning, showing how object.assign and the spread operator copy only one level and propagate changes through nested references.
Explore how JSON.parse and JSON.stringify enable deep cloning, contrasted with shallow cloning via Object.assign and spread, while noting JSON's limits, like non cloneable functions.
Explore deep cloning in JavaScript by comparing shallow clones, Object.assign, and spread syntax, then implement a robust deep clone using a custom function and Lodash's cloneDeep.
Analyze how object.assign and spread create shallow clones of Luke's nested family, causing mutations to leak, while cloneDeep provides a true deep clone.
Explore deeper concepts of functions, including closures, function factories, and higher order functions. See how closures drive advanced JavaScript and why they appear in interviews.
Explore JavaScript closures by connecting inner functions to their environment across global, outer, and inner scopes, creating private methods and function factories.
Explore higher order functions in JavaScript, including callbacks and function factories, and see how functions can be passed or returned to enable functional programming patterns.
Master closures, higher-order functions, and callbacks with a step-by-step JavaScript interview question, building a nested sum function that logs 15.
Explore object oriented programming principles in JavaScript, focusing on constructor functions, classes, and prototype based inheritance. Understand how prototypes shape objects with many methods in the console.
Learn object-oriented programming as a real-world modeling paradigm, using templates, instances, and inheritance to define attributes and methods like habitat, diet, and speak in code.
Explore JavaScript classes, converting constructor functions to class syntax, adding constructor, methods, getters and setters, and using extends for inheritance, with practical examples like a Salesforce Tower scenario.
Prototypes drive inheritance in JavaScript, linking instances to shared properties and methods via the constructor's prototype. Learn creating instances with new, updating prototypes, and how primitives access prototype methods.
Explore class inheritance in JavaScript by extending a building class to create a restaurant, using super to invoke parent constructors, and overriding methods.
Explore asynchronous code and the JavaScript engine, learn how promises and the wait keyword impact timing and order of execution to run multiple tasks at once.
Discover how asynchronous code in javascript uses setTimeout with a callback and a millisecond delay to run tasks non-blockingly, returning a timeout id and enabling cancellation with clearTimeout.
Learn to use the fetch method to make api requests in JavaScript, fetch random jokes from the official joke api, and manage asynchronous responses with promises and then.
Explore how the JavaScript engine and runtime execute code, tracing stack, heap, queue, and event loop, and understand synchronous versus asynchronous patterns with setTimeout and promises.
Explore how the JavaScript engine handles promises and non blocking behavior, and how await and async pause execution to use promise results, with try catch for rejections.
Explore asynchronous JavaScript interview questions using setTimeout timers, showing how non blocking code outputs 1, 4, 3, then 2, and explaining the queue and event loop dynamics.
If your goal is to learn JavaScript and get hired, take this course.
According to the 2018, Hackerrank developer survey, JavaScript is the number one skill that companies are looking for in the tech industry. After all, JavaScript is the language that runs in the browser. And almost every company does business through a web application.
JavaScript frameworks are also the biggest gap between what employers demand, and what candidates can provide. This is because JavaScript still isn't a part of the core curriculum at many universities. Rising software engineers don't have JavaScript skills unless they learn on their own.
Therefore, according to the statistics, learning JavaScript is smartest choice to increasing your chances of landing a job.
In addition, this course is going to give you an extra advantage. Throughout the course, there are special interview-question based videos. These focus on particularly tricky question, that you may get asked about during a JavaScript interview.
Here's how the course journey will go:
First: the Basics. You'll ramp on the console, syntax, objects, and other language fundamentals.
Second: Functions. There are a few ways to create functions. So you'll explore those differences, and important concepts like the `this` keyword.
Third: Types - Digging Deeper. There are some big questions about types: what is type coercion? How are truthy and falsy different? What is null vs. undefined? In this section, you'll cover those questions and more.
Fourth: Syntax - the Intricacies. In this one, you'll discover JavaScript features that can help make your code cleaner. You'll also investigate odd language behavior like hoisting.
Fifth: Objects - Deeper Concepts. This section will introduces more features that can clean up code around objects. The larger topic in this section is a series of videos on creating object clones.
Sixth: Functions - Deeper Concepts. The theme of "Deeper concepts" continues. This time, it's functions. In this section, you'll dig into big terms like closures, function factories, and higher-order functions.
Seventh: Constructors and Prototypes. This is probably the most crucial section in the course. Exploring prototype-based inheritance is an illuminating experience. You'll discover the "why" and "how" behind the truth that almost everything is an object in JavaScript.
Eighth: Asynchronous code and the JavaScript engine. This last section will complete the investigation of JavaScript under the hood. You'll track code as it executes through the JavaScript runtime components: the callstack, queue, and event loop.
The course is meant for all levels. If you start from the beginning, you will learn JavaScript from scratch. But the course is designed to allow intermediate to advanced students to start at later sections, if they see fit. The lessons and interview question videos would benefit anyone, no matter their experience.
In addition to the interview-question based videos, there are resources like quizzes to help reinforce your learning.
Overall, the statistics say that investing your time in JavaScript is a wise decision. On top of this, this course is giving you a greater advantage by preparing you for the tough interview questions.
Ultimately, if your goal is to get hired for your JavaScript skills, then this course will set you on that path!