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

The Complete Javascript Course: Build a Professional Project

Video Description

OO/functional programming, DOM, EC, hoisting, scope chain, closures, encapsulation, inheritance, and modules

About This Video

  • By the end of the course, you will have built a full professional Javascript project from scratch: a fully-functional typing test application that can test users typing speed and generate a PDF certificate at the end of the test.

In Detail

This course has been designed using a robust structure that will take you from zero skills to a job-ready Javascript developer. It is the most comprehensive Javascript course in the market. It contains 15 highly-structured sections distributed over 26 hours of content and 220 lectures, including crystal clear presentations, coding exercises, and a full professional real-life project: This course covers everything you need to stand out when applying for a JS developer job. You will learn the basicsincluding variables and data types, conditional and looping, functions part 1, (first class functions, statements vs expressions, immediately invoked function expressions, and so on). You'll study objects 1, including: object literals, prototypes, equality, constructors, JSON, DOM (event handling, the event object, debouncing, event propagation, event delegation, single threaded JavaScript, an so on).Then you'll move to advanced concepts such as execution context, hoisting, 'this', scope chain, closures(including updating outer variables, iterations, closures with event loops); objects 2 (encapsulation and information hiding includingusing closures to hide information, using IIFE to create private static properties and methods); objects 3 (inheritance and prototype chain, including class augmentation and object cloning); singleton and modular design patterns (including: name-spacing and on) and functions 2, including the 'arguments' property,function,prototype, call and so on.

Table of Contents

  1. Chapter 1 : Introduction
    1. Promo 00:02:35
    2. Introduction to JavaScript 00:11:19
    3. Install Chrome & Brackets 00:02:44
    4. Your first JavaScript Program 00:10:05
  2. Chapter 2 : Variables & Data Types
    1. Introduction 00:01:55
    2. Create Variables 00:09:25
    3. Rules 00:01:59
    4. Memory 00:03:04
    5. Numbers – Introduction 00:05:06
    6. Numbers - Arithmetic Operations 00:04:52
    7. Numbers - Operator Precedence 00:05:55
    8. Numbers - More Operator / Special Numbers 00:10:32
    9. Strings 00:08:33
    10. Booleans 00:02:19
    11. Booleans - Logical Operators 00:04:01
    12. Booleans - Operator Precedence 00:02:08
    13. Booleans - Ternary Operator 00:01:57
    14. Booleans vs Non Booleans 00:12:06
    15. null and undefined 00:03:04
    16. Type coercion 00:08:00
    17. Objects 00:13:13
    18. Arrays 00:02:47
    19. Coding Challenge: Help the Cashier – Introduction 00:08:12
    20. Coding Challenge: Help the Cashier – Logic 00:05:08
    21. Coding Challenge: Help the Cashier - Solution (Part 1) 00:09:18
    22. Coding Challenge: Help the Cashier - Solution (Part 2) 00:16:12
  3. Chapter 3 : Conditional and Looping
    1. If Statement 00:07:53
    2. Switch Statement 00:07:30
    3. For Statement 00:12:55
    4. while do Statement 00:14:05
    5. do while Statement 00:01:49
    6. Coding Challenge: Improve your Cashier Code - Part 1 00:01:15
    7. Coding Challenge: Improve your Cashier Code - Solution 1 00:05:55
    8. Coding Challenge: Improve your Cashier Code - Part 2 00:02:04
    9. Coding Challenge: Improve your Cashier Code - Solution 2 00:02:47
  4. Chapter 4 : Functions - Part 1
    1. Introduction 00:06:56
    2. Return values 00:05:07
    3. Pass 'by value' vs 'by reference 00:11:26
    4. First class functions 00:11:58
    5. Statement vs Expression 00:10:25
    6. IIFE: Immediately Invoked Function Expressions 00:06:56
    7. An invocation pattern: Recursion 00:09:34
    8. Built-in JS Functions 00:08:53
    9. Scope 00:14:50
    10. Coding Challenge: Is it prime? – Introduction 00:03:42
    11. Coding Challenge: Is it prime? – Logic 00:03:24
    12. Coding Challenge: Is it prime? – Solution 00:15:48
    13. Coding Challenge: Can you count the primes? – Introduction 00:02:26
    14. Coding Challenge: Can you count the primes? – Logic 00:02:08
    15. Coding Challenge: Can you count the primes? – Solution 00:05:52
  5. Chapter 5 : Objects - Part 1
    1. Object literals 00:03:04
    2. Dot notation' vs 'Brackets' 00:10:16
    3. Constructors - 'new' keyword - 'this' 00:17:21
    4. Prototype 00:06:49
    5. Equality 00:08:00
    6. String Object 00:08:58
    7. Date Object (1) 00:17:08
    8. Date Object (2) 00:07:44
    9. Math Object 00:03:40
    10. JSON 00:12:47
    11. Array Object 00:04:43
    12. Array methods 00:13:26
    13. Loop through Arrays using forEach 00:02:44
  6. Chapter 6 : The DOM
    1. Learn HTML&CSS (1) 00:12:11
    2. Learn HTML&CSS (2) 00:09:34
    3. Learn HTML&CSS (3) 00:13:25
    4. Learn HTML&CSS (4) 00:11:22
    5. Understand the DOM 00:07:22
    6. Access DOM elements (1) 00:18:44
    7. Access DOM elements (2) 00:06:21
    8. Change DOM elements 00:18:53
    9. Remove DOM elements 00:06:22
    10. Event Handling (1) 00:14:32
    11. Event Handling (2) 00:10:57
    12. Event object – keys 00:06:36
    13. Event object - mouse events 00:13:20
    14. Event object - scroll event 00:06:59
    15. Event object – focus 00:03:41
    16. Event object – preventDefault 00:03:37
    17. Single Threaded Javascript 00:05:08
    18. Debouncing 00:08:15
    19. Event Propagation 00:08:41
    20. Event Delegation 00:13:48
    21. jQuery 00:19:17
  7. Chapter 7 : Execution Context - Hoisting - 'this'
    1. Global Execution Context - 'this' 00:04:09
    2. Execution Context - Creation & Hoisting 00:05:09
    3. Execution Context – Execution 00:12:54
    4. Function declaration overriding variable declaration 00:05:14
  8. Chapter 8 : Scope Chain
    1. Introduction 00:04:13
    2. Understand the scope chain 00:11:07
  9. Chapter 9 : Closures
    1. Understand Closures 00:19:13
    2. Update values of outer variables (1) 00:08:02
    3. Update values of outer variables (2) 00:04:54
    4. Closures with event loops (1) 00:09:43
    5. Closures with event loops (2) 00:05:27
    6. Iteration Challenge 00:08:22
  10. Chapter 10 : Objects - Part 2: Encapsulation & Information Hiding
    1. Why would you hide information? 00:09:03
    2. Use closures to hide properties and methods 00:12:42
    3. Use IIFE to create private static properties and methods 00:07:10
  11. Chapter 11 : Objects - Part 3: Inheritance & Prototype Chain
    1. Understand the prototype (1) 00:05:45
    2. Understand the prototype (2) 00:03:48
    3. Inheritance&PrototypeChain: __proto__ 00:09:57
    4. Inheritance&PrototypeChain: Object.create 00:04:07
    5. Inheritance&PrototypeChain: Constructor Inheritance 00:18:22
    6. Inheritance&PrototypeChain: extend function 00:06:02
    7. Class Augmentation (1) 00:19:22
    8. Class Augmentation (2) 00:11:10
    9. Object cloning 00:06:56
  12. Chapter 12 : Objects - Part 4: Objects Challenges
    1. Challenge: Iteration and hasOwnProperty] 00:07:49
    2. Challenge: Iteration using object.keys & forEach 00:08:19
    3. Challenge: getPrototypeOf & getOwnPropertyNames 00:08:53
    4. Challenge: Climb up the prototype chain 00:16:38
  13. Chapter 13 : Objects - Part 5: Singleton & Module Patterns
    1. Namespacing 00:06:06
    2. Singleton Pattern 00:03:41
    3. Wrap page specific code 00:19:56
    4. Modular Design Pattern 00:08:33
  14. Chapter 14 : Functions - Part 2
    1. Functions are objects 00:05:43
    2. The 'arguments' property 00:08:15
    3. Function.prototype.call 00:17:45
    4. Function.prototype.apply 00:01:23
    5. Function.prototype.bind 00:05:24
  15. Chapter 15 : Typing Test App (Advanced Real Life Professional Project)
    1. Introduction 00:03:34
    2. Steps Simplified 00:09:47
    3. Back to Client Requirements 00:10:17
    4. Functional Design 00:04:33
    5. Modular Design Pattern 00:08:08
    6. Modular Categorization 00:08:47
    7. Data Module Structure 00:14:33
    8. UI Module Structure 00:18:08
    9. Format Current Word Structure 00:11:24
    10. Results Calculation Structure 00:06:08
    11. Update Time Left – Structure 00:03:23
    12. Certificate Module Structure 00:01:12
    13. Events Module Structure 00:02:47
    14. Words Module Structure 00:01:25
    15. Overview of Modules 00:02:46
    16. Get ready to Write Code 00:06:52
    17. App Skeleton & Decoration (1) 00:19:02
    18. App Skeleton & Decoration (2) 00:19:10
    19. App Skeleton & Decoration (3) 00:19:47
    20. init function (Events Module) 00:09:16
    21. Fill the list of Test Words (Data Module) 00:13:33
    22. Shuffle an Array 00:13:47
    23. Add Random Capitalisation 00:12:07
    24. Add Random Punctuation 00:13:25
    25. Fill the list of Test Words (1) (UI Module) 00:19:11
    26. Fill the list of Test Words (2) (UI Module) 00:18:16
    27. Time Initialisation (Data & UI Modules) 00:14:44
    28. Move to a New Word (Data Module) 00:17:54
    29. Set the Active Word & Format it (UI Module) 00:16:02
    30. Type a Character - Event Listener 00:18:47
    31. word.prototype.update(value) 00:19:37
    32. keydown vs keyup vs keypress vs input Events 00:06:32
    33. Format the Active Word (UI Module) 00:19:52
    34. Press Space – Event 00:08:58
    35. Scroll the Active Word into the Middle of the View 00:10:54
    36. Press Enter - Create a Fake Event using the Event Constructor 00:14:18
    37. Launch the Test 00:08:07
    38. Calculate Words per Minute & wpmChange (Data Module) 00:15:25
    39. Update the Time Left (Data & UI Modules) 00:06:11
    40. Calculate Clicks per Minute & cpmChange (Data Module) 00:03:26
    41. Calculate accuracy & accuracyChange (Data Module) 00:06:11
    42. Update Results (UI Module) 00:20:00
    43. End the test & show the Modal (1) (Data & UI Modules) 00:13:40
    44. End the test & show the Modal (2) (Data & UI Modules) 00:18:18
    45. Generate PDF Certificate (1) (Certificate Module) 00:17:57
    46. Generate PDF Certificate (2) (Certificate Module) 00:18:00
    47. Generate PDF Certificate (3) (Certificate Module) 00:18:33