educative.io

Step Up Your JS: A Comprehensive Guide to Intermediate JavaScript (Arnav Aggarwal)


Behavior of Functions and Variables - Variable Scope Scope in JavaScript refers to the set of functions and variables that are available for use. Learn where variables and functions are available and how the JavaScript engine gives us the values we need. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5757334940811264). Behavior of Functions and Variables - ES2015 Scope & Hoisting - let & const We'll learn how the new keywords 'let' and 'const' eliminate the problems of variable hoisting, scope limitations, and unintended reassignments. We'll show why 'var' should never be used again. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5647591547076608). Behavior of Functions and Variables - Introduction to Callbacks Callbacks are functions that are passed to other functions as parameters. They're necessary for asynchronous code, encapsulation, eliminating code repetition, and so much more. The fact that functions are first-class objects in JavaScript is part of what makes the language so powerful. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5661458385862656). Object Oriented Programming: The Core - Apply, Call, Bind, & arguments Learn 'apply', 'call', and 'bind', three functions that give us control over the 'this' value inside of a function. We'll see how these methods allow us to write functions that can accept any number of arguments. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5657382461898752). Object Oriented Programming: `this` and Inheritance - The Complete Rules to `this` Master 'this' by learning exactly how its rules work in JavaScript. Eliminate the cloud of uncertainty surrounding this keyword. Learn exactly how 'this' is determined, how to predict what it will be before you run your code, and how to leverage its uses. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5676830073815040). Object Oriented Programming: `this` and Inheritance - Object Prototypes We'll discuss the '__proto__' property present on objects. It's the tool that lets us implement inheritance and is a vital part of JavaScript. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5665117697998848). Object Oriented Programming: `this` and Inheritance - Implementing Inheritance We'll dive into the nuances of prototypal inheritance and the tools that the language gives us to bend it to our needs. We'll discuss how prototypes and object '__proto__' properties help us implement inheritance. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/6330230964748288). Functional Programming: Arrays and their Powerful Methods - Map Learn how `Array.map` works by learning how to write it yourself. We'll see what makes this function so powerful and how it allows us to work efficiently with large amounts of data. You'll use this functions thousands of times in your JavaScript career. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5767281011326976). Functional Programming: Arrays and their Powerful Methods - Reduce Learn the last of the four powerful array functions. We'll cover how 'reduce' enables us to convert a collection into a single value. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5700735861784576). Functional Programming: Arrays and their Powerful Methods - forEach & Reduce Practice Practice using `reduce` and `forEach`. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5701241594183680). A Dive into Asynchronous JavaScript - Async/Await Learn the modern way to write asynchronous JavaScript. Async/await is quickly becoming the industry standard and it's an important tool to learn. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5715683958587392). Object Oriented Programming: The Core - Introduction to `this`, `new` & OOP Learn what object-oriented programming is and how it's implemented in JavaScript. We'll go over the theory of OOP and discuss what the keywords 'this' and 'new' mean in regards to code. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5693417237512192). Object Oriented Programming: The Core - The Complete Rules to `new` The 'new' keyword is a central part of object-oriented programming in JavaScript. This lesson will discuss how it turns a normal function into a constructor. We'll cover all of the logic that the engine inserts into our function calls when we use 'new' and how it helps us write powerful code. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5750085036015616). Introduction to Functional Programming - Immediately Invoked Function Expressions In this section, we'll cover a concept commonly asked about in JavaScript interviews. We'll see how immediately invoked function expressions allow us to overcome the problems of scope pollution and unwanted variable behavior. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5743114304094208). Functional Programming: Objects and their Powerful Methods - Object.defineProperty Learn how to enforce immutability through `Object.defineProperty`. Learn how it ties into functional programming. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5127195055882240). A Dive into Asynchronous JavaScript - Introduction to Asynchronous Programming in JavaScript Learn strategies for implementing asynchronous code. Learn why it's necessary. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5699714196439040). Essential Modern JavaScript - ES2015+ In Depth - New Object Functionality Objects have been upgraded with ES2015. We'll go over short-hand property assignment and short-hand method naming. We'll go over getters and setters and see how they allow us to implement cleaner interfaces for working with data. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5713144022302720). Introduction to Functional Programming - The IIFE Interview Question Find other ways to solve the IIFE interview question shown in the previous lesson. We'll tie together concepts we covered earlier in the course. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5639955095224320). Functional Programming: Arrays and their Powerful Methods - Filter Learn how `Array.filter` works by learning how to write it yourself. It's almost as powerful as `map` and used ubiquitously throughout code. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5656058538229760). Functional Programming: Objects and their Powerful Methods - Object.keys Learn the most powerful and commonly used Object method, 'Object.keys'. We'll discover how it enables us to work with objects as if they were arrays and how we can then use array methods to work with object data. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5137785908363264). Functional Programming: Arrays and their Powerful Methods - Map & Filter Practice Attempt some practice problems with map & filter. Learn to effectively manipulate large amounts of data. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5204331057905664). A Dive into Asynchronous JavaScript - Callbacks, setTimeout, & the Event Loop Learn how JavaScript is both single-threaded and asynchronous. We'll go over how the event loop creates an event-based system that is at the core of how modern websites work. We'll see how to respond to events efficiently and how to write asynchronous code. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5747976207073280). Advanced Modern JavaScript - Cutting Edge ES2015+ - Symbols Learn the new data type introduced by ES2015 - symbols. Learn how to use its creating function and its values. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5717495361044480). Advanced Modern JavaScript - Cutting Edge ES2015+ - Iterables & Iterators Learn what an iterable is and what it does. Learn how the spread operator and for-of loops work under the hood and how to take advantage of them. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5705718560718848). Functional Programming: Arrays and their Powerful Methods - forEach Learn the third of the most powerful array functions. We'll cover how `forEach` allows us to quickly process data and how it differs from `map` and `filter`. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5734055144325120). Introduction to Functional Programming - Introduction to Functional Programming Learn what functional programming means and what it looks like in JavaScript. Learn how to discuss its merits and drawbacks. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5690145009303552). A Dive into Asynchronous JavaScript - Promises Learn how ES2015 solves the problem of callback hell and the Pyramid of Doom. Promises are now used everywhere in asynchronous code and are part of modern and future JavaScript. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5728116278296576). A Dive into Asynchronous JavaScript - Error Handling with Promises Learn how ES2015 solves the problem of callback hell and the Pyramid of Doom. Promises are now used everywhere in asynchronous code and are part of modern and future JavaScript. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5748291350298624). Advanced Modern JavaScript - Cutting Edge ES2015+ - Sets Learn how to use sets, a data structure just introduced to JavaScript. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5652383656837120). Advanced Modern JavaScript - Cutting Edge ES2015+ - Classes Learn how JavaScript classes offer us a new way to implement inheritance and object-oriented programming. Master the new syntax and see how we can leverage it to write more elegant code. Learn how easy it makes inheritance and what the JavaScript engine does for us with this new syntax. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5651442522128384). Advanced Modern JavaScript - Cutting Edge ES2015+ - Maps Learn how to use a JavaScript map, a new data structure added in ES2015. Master its uses for more powerful and elegant code. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5174714574045184). A Dive into Asynchronous JavaScript - ES5, Promises and async/await Conclusion Learn the crucial nuances between the three different forms of asynchronous code we've covered so far. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5656619568332800). Conclusion - Conclusion Thank you. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5735735550279680). Behavior of Functions and Variables - Closures A closure refers to the lexical context a function was declared in and the variables it has access to. Closures allow us to dynamically create functions, implement encapsulation, and create interfaces to interact with our code. Learn how to use them to perform each of these tasks. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5717271485874176). Behavior of Functions and Variables - Value vs. Reference Learn how some data types are copied by value and others by reference, and what this means when we write code. This concept is at the root of countless bugs that plague websites today. A simple look at computer memory explains what’s happening. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5685265389584384). Behavior of Functions and Variables - Value vs. Reference with ES2015 We'll learn how 'const' works with the concept of value vs. reference in JS. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5725485073956864). Object Oriented Programming: The Core - The Utility of Rest & Spread Learn the rest and spread parameters and how they allow us to seamlessly work with data contained in multiple objects and arrays. We'll go over their uses and in the end, we'll put them together with advanced destructuring and default function parameters to show how these new tools aggregate to give us increased functionality in an small, elegant package. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5175650340044800). Object Oriented Programming: `this` and Inheritance - Arrow Functions and `this` Learn how arrow functions interact with the `this` keyword. Learn how we can leverage their new rules of 'this' binding to make our code more intuitive and clean. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5686589850124288). Functional Programming: Objects and their Powerful Methods - Object.assign Here we'll cover 'Object.assign', a new utility method that makes copying objects and object properties easier. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5689792285114368). Functional Programming: Objects and their Powerful Methods - Object.preventExtensions, seal, and freeze Learn how Object.freeze and Object.seal are similar to Object.assign and help us implement functional programming. ES2015 adds the ability to truly freeze an object and make it immutable. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5671831268753408). A Dive into Asynchronous JavaScript - Common Use Cases of Asynchronous JavaScript Programming Learn some common use cases for asynchronous code. We'll walk through examples of DOM manipulation, dynamic loading, and file system management. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5764748591235072). Advanced Modern JavaScript - Cutting Edge ES2015+ - Section Overview We'll cover more ES2015 features. These are more obscure, occasionally more difficult to understand, and have more limited use cases, but they make certain tasks easier and our code more elegant. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5756596743307264). Advanced Modern JavaScript - Cutting Edge ES2015+ - Generators Learn about ES2015 generators, a new type of function. Learn how to pause a function and dynamically change its state. These allow us to get multiple values out of a function. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5093108584808448). Essential Modern JavaScript - ES2015+ In Depth - The Future of JavaScript JavaScript added a whole slew of functionality to the language in 2015. These are tools intended to make the language easier, more powerful, and more robust. We'll go over the most useful of these tools and see how they can truly transform the way we write JavaScript. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5681717746597888). Essential Modern JavaScript - ES2015+ In Depth - Array & Object Destructuring Array and object destructuring can truly change the way we write a lot of our code. They greatly clean up our code by reducing the number of lines we need to write when working with objects and arrays. We'll cover their nuances and show how they work in every situation. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5754903989321728). Essential Modern JavaScript - ES2015+ In Depth - Default Function Parameters We'll see how the new behavior of default function parameters really works. We'll explore its capabilities and see how it helps us reduce the amount of code we need to write. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5643440998055936). Functional Programming: Objects and their Powerful Methods - Object.values & Object.entries We'll learn two more Object methods, 'Object.values' and 'Object.entries', that are both just as powerful as 'Object.keys'. We'll see how they make our lives a little easier when working with the data contained in objects. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5718998062727168). Behavior of Functions and Variables - Variable Hoisting Understand variable hoisting in JavaScript. Learn what the engine does behind the scenes to our variable and function declarations and how this results in unexpected behavior. Learn the difference between variable hoisting and function hoisting. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5649050225344512). Essential Modern JavaScript - ES2015+ In Depth - Template Literals We'll cover JavaScript's new way of creating a string, the backticks (`). We'll see how these backticks make strings easier to create dynamically and how they make working with strings more intuitive. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5704837555552256). Essential Modern JavaScript - ES2015+ In Depth - Arrow Functions () => {} Learn an entirely new type of function. Learn arrow functions and how they allow us to write cleaner callbacks and functions in general. Learn how we can leverage their new rules of 'this' binding to make our code more intuitive and clean. View the lesson [here](https://www.educative.io/collection/page/5679346740101120/5707702298738688/5733935958982656).
About the Step Up Your JS: A Comprehensive Guide to Intermediate JavaScript (Arnav Aggarwal) category [Step Up Your JS: A Comprehensive Guide to Intermediate JavaScript (Arnav Aggarwal)] (1)