Skip to content

JavaScript Ecmascript 2015 Course

enki-hq edited this page Jul 3, 2018 · 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
2 const-part-1 👶 introduction
3 const-part-2 👶 introduction
4 let-part-1
5 let-part-2

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 💪 workout
2 arrow-functions-part-2 👶 introduction
💪 workout
3 default-function-parameters
4 method-shorthand
5 property-value-shorthand

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
2 template-literals
3 binary-and-octal-notation-in-es6 👶 introduction
✨ new
💪 workout
4 number-extensions-part-1
5 number-extensions-part-2

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
💪 workout
✨ new
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
2 destructuring-part-2
3 destructuring-part-3

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
2 spread-part-2
3 map-data-structure
4 set-data-structure
5 math-extensions

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

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
2 extends-super-and-static
3 introducing-modules
4 multiple-functions-in-single-module

Exercises:

no name type aspects standards done
1 js-practice-classes-i codewars prototype-class.0: 1000
prototype-class.1: 1000
2 js-practice-class-inheritance-i codewars prototype-inherit.0: 1000
prototype-inherit.1: 1000
3 js-practice-getters codewars prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
4 js-practice-setters codewars prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
5 js-practice-class-inheritance-ii codewars prototype-class.0: 1000
prototype-class.1: 1000
prototype-class.2: 1000
prototype-inherit.0: 1000
6 js-practice-classes-ii codewars 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
2 internationalization-localization
3 defaults-values-apply-only-to-undefined-and-not-to-null
4 es6-dynamic-property-keys-in-mongo-like-set-clauses
5 weakmap-in-es6

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
ecmascript-time-travel fillTheGap

Insights:

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

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
2 symbol-registry
3 why-use-symbols
4 why-use-symbols-2
5 symbol-special-properties

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
2 iterator-protocol
3 iterables
4 iterator-usages
5 introducing-generators

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
2 passing-values-to-generators
3 generators-and-exceptions
4 introducing-proxy
5 proxy-interception-points

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
2 reflect-api-in-es6
3 tail-call-optimisation-in-es6
4 typed-arrays

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. const-part-1
  2. const-part-2
  3. arrow-functions-part-2
  4. binary-and-octal-notation-in-es6
  5. searching-array-methods
  6. array-copywithin
  7. tagged-template-literals
  8. classes-and-constructor

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

💪 Workout

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

Insights:

  1. arrow-functions-part-1
  2. arrow-functions-part-2
  3. binary-and-octal-notation-in-es6
  4. searching-array-methods
  5. array-extensions
  6. array-copywithin
  7. tagged-template-literals
  8. tagged-template-literals-2

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

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. tagged-template-literals-2

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

✨ New

Recently added/gained traction feature

Insights:

  1. binary-and-octal-notation-in-es6
  2. searching-array-methods
  3. array-copywithin
  4. tagged-template-literals

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

🔮 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. ecmascript-6
  2. let-part-1
  3. let-part-2
  4. default-function-parameters
  5. method-shorthand
  6. property-value-shorthand
  7. string-extensions
  8. template-literals
  9. number-extensions-part-1
  10. number-extensions-part-2
  11. destructuring-part-1
  12. destructuring-part-2
  13. destructuring-part-3
  14. destructuring-assignments
  15. spread-part-1
  16. spread-part-2
  17. map-data-structure
  18. set-data-structure
  19. math-extensions
  20. js-practice-spreads
  21. map-set-weakmap-weakset
  22. string-raw
  23. stringing-it-all-together
  24. extends-super-and-static
  25. introducing-modules
  26. multiple-functions-in-single-module
  27. js-practice-classes-i
  28. js-practice-class-inheritance-i
  29. js-practice-getters
  30. js-practice-setters
  31. js-practice-class-inheritance-ii
  32. js-practice-classes-ii
  33. unicode-in-es6
  34. internationalization-localization
  35. defaults-values-apply-only-to-undefined-and-not-to-null
  36. es6-dynamic-property-keys-in-mongo-like-set-clauses
  37. weakmap-in-es6
  38. ecmascript-time-travel
  39. introducing-promises
  40. how-to-create-promises
  41. promises-reject
  42. chaining-promises
  43. promise-api-methods
  44. js-practice-promises
  45. js-practice-async-await
  46. symbol
  47. symbol-registry
  48. why-use-symbols
  49. why-use-symbols-2
  50. symbol-special-properties
  51. introducing-iterators
  52. iterator-protocol
  53. iterables
  54. iterator-usages
  55. introducing-generators
  56. iterators-for-of-spreads
  57. yield
  58. passing-values-to-generators
  59. generators-and-exceptions
  60. introducing-proxy
  61. proxy-interception-points
  62. generators-and-promises
  63. es6-generator-transpiler
  64. reflect-api-in-es6
  65. tail-call-optimisation-in-es6
  66. typed-arrays
  67. javascript-hard-mode-ii
Clone this wiki locally