O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: Next Level JavaScript

Video Description

Upgrade your JavaScript skills to ES6 and beyond

In Detail

Great JavaScript is more than just syntax or style guides. This Learning Path starts by leading you through advanced JavaScript concepts, swiftly moving on to showing you how you can use ES6 and functional programming right away in live projects and applications.

Prerequisites: Requires a working knowledge of JavaScript

Resources: Code downloads and errata:

  • Mastering JavaScript

  • JavaScript Design Patterns

  • Learning JavaScript Promises

  • Learning Functional JavaScript

  • JavaScript High Performance

  • PATH PRODUCTS

    This path navigates across the following products (in sequential order):

  • Mastering JavaScript (4h 10m)

  • JavaScript Design Patterns (3h 15m)

  • Learning JavaScript Promises (2h 37m)

  • Learning Functional JavaScript (2h)

  • JavaScript High Performance (2h 40m)

  • Photo Credit: ©iStockphoto.com/Tor Lindqvist

    Table of Contents

    1. Chapter 1 : Mastering JavaScript
      1. The Course Overview 00:02:58
      2. Using White Space for Readability 00:05:20
      3. Declaring Variables 00:07:52
      4. Declaring Complex Data Types and Functions 00:04:22
      5. OOP Naming Conventions 00:04:14
      6. Creating a Global Namespace 00:04:46
      7. Constants (and Pseudo constants) 00:03:49
      8. Smart Coercion of Data Fields 00:04:23
      9. Targeting at JavaScript Versions or Features 00:04:53
      10. Creating an onload Method That Always Works 00:03:39
      11. OnReady – Our First Cross-browser Script 00:06:51
      12. Using Modernizr to Detect Features 00:04:23
      13. Building a Conditional Logic Flow 00:04:51
      14. Selecting DOM Elements Natively in HTML5 00:06:25
      15. Creating a Cross-browser Script Loader 00:05:37
      16. Using Sizzle to Select DOM Elements 00:07:14
      17. Defining a Namespace 00:05:43
      18. Creating Private Variables in JavaScript 00:05:45
      19. The JavaScript Module Design Pattern 00:06:30
      20. Version Controlling Our Library 00:07:08
      21. Building Out Our Library 00:11:26
      22. Thinking with Interfaces 00:07:21
      23. Creating an Adapter Design Pattern 00:05:30
      24. Building a jQuery Adapter 00:06:41
      25. Adding a Functionality Method 00:03:47
      26. Mimicking the jQuery Wrapper 00:09:07
      27. Introducing the Facade Design Pattern 00:03:56
      28. Creating a Facade Creator 00:04:34
      29. Creating a New Global Function Through the Facade 00:04:00
      30. Creating an Advanced Facade Pattern 00:05:19
      31. Creating a Singleton 00:11:33
      32. Building the Constructor for Our Ticker 00:10:37
      33. Connecting Time with Our Ticker 00:11:10
      34. Processing Interval groups 00:09:46
      35. Exposing Our Ticker to the World 00:02:46
      36. Creating an Event Dispatcher 00:13:35
      37. Integrating the Event Dispatcher into Our Library 00:08:12
      38. Removing Events from the Dispatcher 00:05:21
      39. Building Test Units 00:08:48
    2. Chapter 2 : JavaScript Design Patterns 20 Patterns for Advancing Your JavaScript Skills
      1. The Course Overview 00:04:03
      2. The Problem with the Global Scope 00:12:50
      3. Moving to One Object and Namespace 00:08:14
      4. The Module Design Pattern 00:07:59
      5. The Module Reveal Pattern 00:06:33
      6. Controlling the Global Access Completely 00:05:47
      7. The Singleton Design Pattern 00:13:21
      8. The Factory Design Pattern 00:06:21
      9. The Abstract Factory Design Pattern 00:09:44
      10. The Builder Design Pattern 00:12:11
      11. The Builder Design Pattern Continued 00:05:05
      12. The Prototype Design Pattern 00:04:59
      13. Abstracting Our Singleton 00:09:06
      14. The Adapter Design Pattern 00:06:13
      15. The Composite Design Pattern 00:11:59
      16. The Decorator Design Pattern 00:04:24
      17. The Fly Weight Design Pattern 00:07:15
      18. The Façade Design Pattern 00:04:59
      19. Getting Things Working Again 00:05:19
      20. The Bridge Design Pattern 00:01:35
      21. The Proxy Design Pattern 00:05:42
      22. The Chain of Responsibility – Part 1 00:06:03
      23. The Chain of Responsibility – Part 2 00:08:51
      24. The Observer Design Pattern – Adding and Dispatching Events 00:08:39
      25. The Observer Design Pattern – Removing Events 00:04:42
      26. The State Design Pattern 00:14:02
    3. Chapter 3 : Learning JavaScript Promises: Practical Applications in ES6 and AngularJS
      1. The Course Overview 00:02:17
      2. Promises – You've Been Using Them All Along 00:07:16
      3. Make Me a Promise 00:06:12
      4. Creating ES6 Promises 00:09:11
      5. There Are Only Two Types of Promises in This World 00:08:39
      6. Deciding What’s Next 00:10:56
      7. No Second Chance 00:09:57
      8. Callbacks Execution and Timing 00:10:46
      9. The Future Is Coming – Angular v2 Promises 00:04:14
      10. Chaining Promises 00:12:05
      11. Making API Data User-ready 00:09:13
      12. Changing Successes into Failure 00:08:31
      13. Turning Failure into Success 00:07:43
      14. Parallel and Independent Tasks 00:04:16
      15. Interdependent Tasks 00:08:05
      16. Series Flow - with a Twist 00:07:25
      17. Make It All Asynchronous 00:08:42
      18. The Pitfall of No Return 00:04:18
      19. Promises Versus Events 00:09:25
      20. Race to the Finish Line 00:08:32
    4. Chapter 4 : Introduction to Functional Programming
      1. The Course Overview 00:03:54
      2. What Is Functional Programming? 00:04:08
      3. Your First Functional Programming Concepts 00:03:33
      4. First-class Functions 00:02:41
      5. Passing Functions as Arguments 00:08:31
      6. Returning Functions 00:04:39
      7. Callbacks 00:05:14
      8. Continuation Passing Style 00:06:34
      9. Promises 00:10:33
      10. Partial Function Application 00:07:05
      11. Currying 00:08:44
      12. Composition 00:07:01
      13. What Is Immutability? 00:06:46
      14. Working with Immutability 00:08:59
      15. Immutability in the UI 00:06:00
      16. Mechanics and Performance 00:06:59
      17. Recursive Thinking 00:07:25
      18. A Recursive AST Parser 00:07:15
      19. Trampolining 00:04:48
      20. Lazy Evaluation 00:08:46
      21. Lazy Sequences 00:05:45
      22. Infinite Sequences 00:05:12
    5. Chapter 5 : JavaScript High Performance
      1. Course Overview 00:02:02
      2. Caching Your Scripts 00:11:12
      3. Creating a Cache Buster 00:04:58
      4. Minifying Your Output 00:09:02
      5. Always Declare Your Variables 00:03:18
      6. Creating Location References 00:09:02
      7. Condensing var Definitions 00:05:00
      8. Comparing Explicitly When Appropriate 00:02:53
      9. Using String Accumulator-style 00:03:26
      10. Building Strings with Arrays 00:03:12
      11. Avoiding eval for Object References 00:04:05
      12. Talking to Functions 00:02:13
      13. Avoiding eval 00:04:48
      14. Reducing the Use of Anonymous Functions 00:03:24
      15. OOP – Defining Class Methods and Properties 00:03:55
      16. Picking the Right Loop for the Task 00:02:30
      17. Simplifying Your Loops – Round 1 00:05:12
      18. Reducing the Loop Footprint 00:09:31
      19. Loops, Arrays, and Memory Leaks 00:05:21
      20. Preallocating Size to an Array 00:09:15
      21. Avoiding the Unnecessary 00:08:43
      22. Putting Code Where It Should Be 00:08:30
      23. Clearing Circular References 00:10:49
      24. Using Less Events to Do More 00:08:10
      25. Trading Smoothness for Speed 00:07:12
      26. Clearing Memory Leaks by Always Clearing Intervals 00:03:04
      27. How to Avoid Running Multiple Intervals 00:12:53
      28. Reducing DOM Calls 00:13:24
      29. Reducing Document Reflows 00:07:00
      30. Making It Animate Smoothly 00:11:31
      31. Changing Classes and Not Styles 00:07:11
      32. Adding Scripts as You Need Them Dynamically 00:04:07
      33. Cutting Traveling with HTML5 Validation 00:04:45
      34. Moving Data Processing to the Client Side 00:09:41
      35. What Data Types to Use? 00:01:24
      36. Caching Data 00:01:45
      37. The Issue with Working Directly with HTML Collections 00:04:44
      38. Converting Collection Objects into Arrays 00:03:22
      39. FPS and High Resolution Time – HRT 00:16:52
      40. JavaScript Profiling and Memory Leaks 00:05:31