Skip to content

JavaScript Ecmascript 2015 Course

enki-hq edited this page Feb 7, 2019 · 3 revisions

Ecmascript 2015 Course Overview

Table of Contents

Content

Below you can find the ordered content of the topic, in a linear progression

The linear progression of content aims to cover all content, course by course, workout by workout as follows:

  • first course is the only core one, denoted by its manifest
  • the next course is denoted by the first item of the next array in each course manifest
  • each course has its order of workouts designated by the sections field in the same aforementioned manifest

Insights:

no name content aspects standards PQ RQ Quiz done
1 ecmascript-6 👶 introduction
2 const-part-1 👶 introduction
3 const-part-2 👶 introduction
4 let-part-1 👶 introduction
5 let-part-2 👶 introduction

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 arrow-functions-part-1 👶 introduction
✨ new
💪 workout
2 arrow-functions-part-2 👶 introduction
💪 workout
✨ new
3 default-function-parameters 👶 introduction
✨ new
💪 workout
4 method-shorthand 👶 introduction
✨ new
💪 workout
5 property-value-shorthand 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 string-extensions 👶 introduction
✨ new
💪 workout
2 template-literals 👶 introduction
✨ new
💪 workout
3 binary-and-octal-notation-in-es6 👶 introduction
✨ new
💪 workout
4 number-extensions-part-1 👶 introduction
✨ new
💪 workout
5 number-extensions-part-2 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 searching-array-methods 👶 introduction
✨ new
💪 workout
2 array-extensions 💪 workout
3 array-copywithin 👶 introduction
💪 workout
✨ new

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 destructuring-part-1 👶 introduction
✨ new
💪 workout
2 destructuring-part-2 👶 introduction
✨ new
💪 workout
3 destructuring-part-3 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
destructuring-assignments fillTheGap 👶 introduction
✨ new
💪 workout

Insights:

no name content aspects standards PQ RQ Quiz done
1 spread-part-1 👶 introduction
✨ new
💪 workout
2 spread-part-2 👶 introduction
✨ new
💪 workout
3 map-data-structure 👶 introduction
💪 workout
4 set-data-structure 👶 introduction
💪 workout
5 math-extensions 👶 introduction
💪 workout

Exercises:

no name type aspects standards done
1 js-practice-spreads codewars 👶 introduction
💪 workout
execution-context.1: 1000

Game:

name type aspects standards done
map-set-weakmap-weakset fillTheGap 👶 introduction
💪 workout

Insights:

no name content aspects standards PQ RQ Quiz done
1 tagged-template-literals ✨ new
💪 workout
👶 introduction
2 tagged-template-literals-2 💪 workout
🦑 deep
3 string-raw 👶 introduction
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
stringing-it-all-together fillTheGap 👶 introduction
✨ new
💪 workout

Insights:

no name content aspects standards PQ RQ Quiz done
1 classes-and-constructor 👶 introduction
✨ new
💪 workout
2 extends-super-and-static 👶 introduction
✨ new
💪 workout
3 introducing-modules 👶 introduction
✨ new
💪 workout
4 multiple-functions-in-single-module 👶 introduction
✨ new
💪 workout

Exercises:

no name type aspects standards done
1 js-practice-classes-i codewars 👶 introduction
✨ new
💪 workout
prototype-class.0: 1000
prototype-class.1: 1000
2 js-practice-class-inheritance-i codewars 👶 introduction
✨ new
💪 workout
prototype-inherit.0: 1000
prototype-inherit.1: 1000
3 js-practice-getters codewars 👶 introduction
✨ new
💪 workout
prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
4 js-practice-setters codewars 👶 introduction
✨ new
💪 workout
prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
5 js-practice-class-inheritance-ii codewars 👶 introduction
✨ new
💪 workout
prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
prototype-inherit.0: 1000
6 js-practice-classes-ii codewars 👶 introduction
✨ new
💪 workout
prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 unicode-in-es6 👶 introduction
✨ new
💪 workout
🦑 deep
2 internationalization-localization ✨ new
💪 workout
🦑 deep
3 defaults-values-apply-only-to-undefined-and-not-to-null 👶 introduction
✨ new
💪 workout
4 es6-dynamic-property-keys-in-mongo-like-set-clauses 👶 introduction
✨ new
💪 workout
5 weakmap-in-es6 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
ecmascript-time-travel fillTheGap 👶 introduction
✨ new
💪 workout
🦑 deep

Insights:

no name content aspects standards PQ RQ Quiz done
1 introducing-promises 👶 introduction
💪 workout
2 how-to-create-promises 👶 introduction
💪 workout
3 promises-reject 👶 introduction
💪 workout
4 chaining-promises 👶 introduction
💪 workout
5 promise-api-methods 👶 introduction
💪 workout

Exercises:

no name type aspects standards done
1 js-practice-promises codewars 👶 introduction
💪 workout
async.2: 1000
2 js-practice-async-await codewars 👶 introduction
✨ new
💪 workout
async.3: 1000

Game:

⚠️ There is no game in this workout.

11. symbol

Insights:

no name content aspects standards PQ RQ Quiz done
1 symbol 👶 introduction
✨ new
💪 workout
🦑 deep
2 symbol-registry 👶 introduction
✨ new
💪 workout
🦑 deep
3 why-use-symbols 👶 introduction
✨ new
💪 workout
🦑 deep
4 why-use-symbols-2 👶 introduction
✨ new
💪 workout
🦑 deep
5 symbol-special-properties 👶 introduction
✨ new
💪 workout
🦑 deep

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 introducing-iterators 👶 introduction
✨ new
💪 workout
2 iterator-protocol 👶 introduction
✨ new
💪 workout
3 iterables 👶 introduction
✨ new
💪 workout
4 iterator-usages 👶 introduction
✨ new
💪 workout
5 introducing-generators 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
iterators-for-of-spreads fillTheGap 👶 introduction
💪 workout

Insights:

no name content aspects standards PQ RQ Quiz done
1 yield 👶 introduction
💪 workout
2 passing-values-to-generators 👶 introduction
💪 workout
3 generators-and-exceptions 👶 introduction
💪 workout
4 introducing-proxy 👶 introduction
✨ new
💪 workout
5 proxy-interception-points 👶 introduction
✨ new
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
generators-and-promises fillTheGap 👶 introduction
💪 workout

Insights:

no name content aspects standards PQ RQ Quiz done
1 es6-generator-transpiler 👶 introduction
✨ new
💪 workout
2 reflect-api-in-es6 👶 introduction
✨ new
💪 workout
🦑 deep
3 tail-call-optimisation-in-es6 👶 introduction
💪 workout
🦑 deep
4 typed-arrays 👶 introduction
💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
javascript-hard-mode-ii fillTheGap 👶 introduction
💪 workout

Standards

✅ - At least one insight covers this

❌ - Nothing covers this

🛠️ - This standard has no objectives yet

❌ Use new variable declaration keywords to communicate more effectively with other developers

  1. ❌ Use let for block-scoped variables
  2. ❌ Use const for variables that will not change

❌ Use extensions to JavaScript’s standard library to perform data analysis and manipulation

  1. ❌ Use new Object static methods
  2. ❌ Use new Array static and prototype methods
  3. ❌ Use new String static and prototype methods and properties
  4. ❌ Use new Number static and prototype methods and properties
  5. ❌ Use new Math methods
  6. ❌ Use new RegExp syntax extensions

❌ Use updates to functions to create more expressive functions

  1. ❌ Use Arrow Functions
  2. ❌ Use Generator Functions
  3. ❌ Use parameter defaults
  4. ❌ Use the rest operator ... to capture additional parameters

❌ Use new data structures and their features to store data

  1. ❌ Use Set and it's methods to effectively store and retrieve data
  2. ❌ Use Map and it's methods to effectively store and retrieve data
  3. ❌ Use WeakSet and it's methods to effectively store and retrieve data
  4. ❌ Use WeakMap and it's methods to effectively store and retrieve data
  5. ❌ Use Typed Arrays and their methods to effectively store and retrieve data
  6. ❌ Use DataViews and their methods to effectively store and retrieve data
  7. ❌ Use Symbol and it's methods to effectively store and retrieve data
  8. ❌ Use the spread operator (...) to spread a collection

❌ Use destructuring syntax to operate on data in collection

  1. ❌ Use destructuring syntax with arrays
  2. ❌ Use destructuring syntax with objects
  3. ❌ Use destructuring syntax to assign default values in objects
  4. ❌ Use destructuring syntax with strings
  5. ❌ Use destructuring syntax with computed property names
  6. ❌ Use destructuring syntax to unpack field names from objects passed as a function parameter
  7. ❌ Use destructuring syntax to iterate over collections

❌ Use prototypes to create class-like objects in JavaScript

  1. ❌ Use the class keyword to declare a class, using the constructor function
  2. ❌ Use the extends keyword to inherit from another class, and use super in the constructor function

❌ Use native Promises to manage asynchronous operations

  1. ❌ Use the Promise constructor to create a new promise
  2. ❌ Use .then to await promise resolution
  3. ❌ Use .catch to catch errors
  4. ❌ Use .all to await multiple promises
  5. ❌ Use .resolve to resolve a promise
  6. ❌ Use .reject to reject a promise
  7. ❌ Use .race to race promises

❌ Use async await to manage asynchronous operations

  1. ❌ Write an async function that performs an asynchronous task
  2. ❌ Use the await keyword to pause execution in an async function until a promise resolves

❌ Use iterators and generators to process collections

  1. ❌ Use for..of loops to iterate over a collection by value
  2. ❌ Use generator functions to yield a sequence
  3. ❌ Use a generator to invert control
  4. ❌ Use a generator to manage asynchronous activity by suspending execution until after a promise has resolved

❌ Use Proxies to define custom behavior for fundamental operations in JavaScript

  1. ❌ Use a Proxy to handle property lookup and assignment
  2. ❌ Use a Proxy to handle function invocation
  3. ❌ Use Reflect to use the internal default behavior of proxy methods

Aspects

Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.

These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.

For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration

👶 Introduction

If you are being introduced to the topic for the first time

Insights:

  1. ecmascript-6
  2. const-part-1
  3. const-part-2
  4. let-part-1
  5. let-part-2
  6. arrow-functions-part-1
  7. arrow-functions-part-2
  8. default-function-parameters
  9. method-shorthand
  10. property-value-shorthand
  11. string-extensions
  12. template-literals
  13. binary-and-octal-notation-in-es6
  14. number-extensions-part-1
  15. number-extensions-part-2
  16. searching-array-methods
  17. array-copywithin
  18. destructuring-part-1
  19. destructuring-part-2
  20. destructuring-part-3
  21. spread-part-1
  22. spread-part-2
  23. map-data-structure
  24. set-data-structure
  25. math-extensions
  26. tagged-template-literals
  27. string-raw
  28. classes-and-constructor
  29. extends-super-and-static
  30. introducing-modules
  31. multiple-functions-in-single-module
  32. unicode-in-es6
  33. defaults-values-apply-only-to-undefined-and-not-to-null
  34. es6-dynamic-property-keys-in-mongo-like-set-clauses
  35. weakmap-in-es6
  36. introducing-promises
  37. how-to-create-promises
  38. promises-reject
  39. chaining-promises
  40. promise-api-methods
  41. symbol
  42. symbol-registry
  43. why-use-symbols
  44. why-use-symbols-2
  45. symbol-special-properties
  46. introducing-iterators
  47. iterator-protocol
  48. iterables
  49. iterator-usages
  50. introducing-generators
  51. yield
  52. passing-values-to-generators
  53. generators-and-exceptions
  54. introducing-proxy
  55. proxy-interception-points
  56. es6-generator-transpiler
  57. reflect-api-in-es6
  58. tail-call-optimisation-in-es6
  59. typed-arrays

Exercises:

  1. js-practice-spreads
  2. js-practice-classes-i
  3. js-practice-class-inheritance-i
  4. js-practice-getters
  5. js-practice-setters
  6. js-practice-class-inheritance-ii
  7. js-practice-classes-ii
  8. js-practice-promises
  9. js-practice-async-await

Games:

  1. destructuring-assignments
  2. map-set-weakmap-weakset
  3. stringing-it-all-together
  4. ecmascript-time-travel
  5. iterators-for-of-spreads
  6. generators-and-promises
  7. javascript-hard-mode-ii

💪 Workout

Theory put into practice/that’s how you achieve X points

Insights:

  1. arrow-functions-part-1
  2. arrow-functions-part-2
  3. default-function-parameters
  4. method-shorthand
  5. property-value-shorthand
  6. string-extensions
  7. template-literals
  8. binary-and-octal-notation-in-es6
  9. number-extensions-part-1
  10. number-extensions-part-2
  11. searching-array-methods
  12. array-extensions
  13. array-copywithin
  14. destructuring-part-1
  15. destructuring-part-2
  16. destructuring-part-3
  17. spread-part-1
  18. spread-part-2
  19. map-data-structure
  20. set-data-structure
  21. math-extensions
  22. tagged-template-literals
  23. tagged-template-literals-2
  24. string-raw
  25. classes-and-constructor
  26. extends-super-and-static
  27. introducing-modules
  28. multiple-functions-in-single-module
  29. unicode-in-es6
  30. internationalization-localization
  31. defaults-values-apply-only-to-undefined-and-not-to-null
  32. es6-dynamic-property-keys-in-mongo-like-set-clauses
  33. weakmap-in-es6
  34. introducing-promises
  35. how-to-create-promises
  36. promises-reject
  37. chaining-promises
  38. promise-api-methods
  39. symbol
  40. symbol-registry
  41. why-use-symbols
  42. why-use-symbols-2
  43. symbol-special-properties
  44. introducing-iterators
  45. iterator-protocol
  46. iterables
  47. iterator-usages
  48. introducing-generators
  49. yield
  50. passing-values-to-generators
  51. generators-and-exceptions
  52. introducing-proxy
  53. proxy-interception-points
  54. es6-generator-transpiler
  55. reflect-api-in-es6
  56. tail-call-optimisation-in-es6
  57. typed-arrays

Exercises:

  1. js-practice-spreads
  2. js-practice-classes-i
  3. js-practice-class-inheritance-i
  4. js-practice-getters
  5. js-practice-setters
  6. js-practice-class-inheritance-ii
  7. js-practice-classes-ii
  8. js-practice-promises
  9. js-practice-async-await

Games:

  1. destructuring-assignments
  2. map-set-weakmap-weakset
  3. stringing-it-all-together
  4. ecmascript-time-travel
  5. iterators-for-of-spreads
  6. generators-and-promises
  7. javascript-hard-mode-ii

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. tagged-template-literals-2
  2. unicode-in-es6
  3. internationalization-localization
  4. symbol
  5. symbol-registry
  6. why-use-symbols
  7. why-use-symbols-2
  8. symbol-special-properties
  9. reflect-api-in-es6
  10. tail-call-optimisation-in-es6

⚠️ There are no exercises tagged with this aspect in ecmascript-2015. Games:

  1. ecmascript-time-travel

✨ New

Recently added/gained traction feature

Insights:

  1. arrow-functions-part-1
  2. arrow-functions-part-2
  3. default-function-parameters
  4. method-shorthand
  5. property-value-shorthand
  6. string-extensions
  7. template-literals
  8. binary-and-octal-notation-in-es6
  9. number-extensions-part-1
  10. number-extensions-part-2
  11. searching-array-methods
  12. array-copywithin
  13. destructuring-part-1
  14. destructuring-part-2
  15. destructuring-part-3
  16. spread-part-1
  17. spread-part-2
  18. tagged-template-literals
  19. classes-and-constructor
  20. extends-super-and-static
  21. introducing-modules
  22. multiple-functions-in-single-module
  23. unicode-in-es6
  24. internationalization-localization
  25. defaults-values-apply-only-to-undefined-and-not-to-null
  26. es6-dynamic-property-keys-in-mongo-like-set-clauses
  27. weakmap-in-es6
  28. symbol
  29. symbol-registry
  30. why-use-symbols
  31. why-use-symbols-2
  32. symbol-special-properties
  33. introducing-iterators
  34. iterator-protocol
  35. iterables
  36. iterator-usages
  37. introducing-generators
  38. introducing-proxy
  39. proxy-interception-points
  40. es6-generator-transpiler
  41. reflect-api-in-es6

Exercises:

  1. js-practice-classes-i
  2. js-practice-class-inheritance-i
  3. js-practice-getters
  4. js-practice-setters
  5. js-practice-class-inheritance-ii
  6. js-practice-classes-ii
  7. js-practice-async-await

Games:

  1. destructuring-assignments
  2. stringing-it-all-together
  3. ecmascript-time-travel

🔮 Obscura

Stories, obscure details that don’t specifically relate to a learning objective

⚠️ There are no insights tagged with this aspect in ecmascript-2015. :warning: There are no exercises tagged with this aspect in ecmascript-2015. :warning: There are no games tagged with this aspect in ecmascript-2015.

✅ All content has been tagged with aspects.

Clone this wiki locally