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

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
4 set-data-structure 👶 introduction
💪 workout
5 math-extensions 👶 introduction
💪 workout

Exercises:

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

Game:

name type aspects standards done
map-set-weakmap-weakset fillTheGap

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

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 async.2: 1000
2 js-practice-async-await codewars 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

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

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

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. set-data-structure
  24. math-extensions
  25. tagged-template-literals
  26. string-raw
  27. classes-and-constructor
  28. extends-super-and-static
  29. introducing-modules
  30. multiple-functions-in-single-module
  31. unicode-in-es6
  32. defaults-values-apply-only-to-undefined-and-not-to-null
  33. es6-dynamic-property-keys-in-mongo-like-set-clauses
  34. weakmap-in-es6
  35. introducing-promises
  36. how-to-create-promises
  37. promises-reject
  38. chaining-promises
  39. promise-api-methods
  40. symbol
  41. symbol-registry
  42. why-use-symbols
  43. why-use-symbols-2
  44. symbol-special-properties
  45. introducing-iterators
  46. iterator-protocol
  47. iterables
  48. iterator-usages
  49. introducing-generators
  50. yield
  51. passing-values-to-generators
  52. generators-and-exceptions
  53. introducing-proxy
  54. proxy-interception-points
  55. es6-generator-transpiler
  56. reflect-api-in-es6
  57. tail-call-optimisation-in-es6
  58. typed-arrays

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

Games:

  1. ecmascript-time-travel

💪 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. set-data-structure
  20. math-extensions
  21. tagged-template-literals
  22. tagged-template-literals-2
  23. string-raw
  24. classes-and-constructor
  25. extends-super-and-static
  26. introducing-modules
  27. multiple-functions-in-single-module
  28. unicode-in-es6
  29. internationalization-localization
  30. defaults-values-apply-only-to-undefined-and-not-to-null
  31. es6-dynamic-property-keys-in-mongo-like-set-clauses
  32. weakmap-in-es6
  33. introducing-promises
  34. how-to-create-promises
  35. promises-reject
  36. chaining-promises
  37. promise-api-methods
  38. symbol
  39. symbol-registry
  40. why-use-symbols
  41. why-use-symbols-2
  42. symbol-special-properties
  43. introducing-iterators
  44. iterator-protocol
  45. iterables
  46. iterator-usages
  47. introducing-generators
  48. yield
  49. passing-values-to-generators
  50. generators-and-exceptions
  51. introducing-proxy
  52. proxy-interception-points
  53. es6-generator-transpiler
  54. reflect-api-in-es6
  55. tail-call-optimisation-in-es6
  56. typed-arrays

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

Games:

  1. ecmascript-time-travel

🦑 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

Games:

  1. 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.

Content without aspects

  1. destructuring-assignments
  2. map-data-structure
  3. js-practice-spreads
  4. map-set-weakmap-weakset
  5. stringing-it-all-together
  6. js-practice-promises
  7. js-practice-async-await
  8. iterators-for-of-spreads
  9. generators-and-promises
  10. javascript-hard-mode-ii
Clone this wiki locally