Skip to content

JavaScript Core Course

enki-hq edited this page Feb 10, 2019 · 21 revisions

Core 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 why-learn-javascript 👶 introduction
2 console-in-javascript 👶 introduction javascript-syntax.1: 10
standard-library.3: 10
3 javascript-basics-part-1 👶 introduction javascript-syntax.1: 10
javascript-syntax.2: 10
4 javascript-basics-part-2 👶 introduction functions.5: 10

Exercises:

no name type aspects standards done
1 js-practice-console glitch 👶 introduction
💪 workout
standard-library.3: 1000
2 js-practice-basics-part-2 glitch javascript-syntax.1: 1000
javascript-syntax.2: 1000
write-expressions.0: 1000
evaluate-expressions.2: 1000

Game:

⚠️ There is no game in this workout.

2. types

Insights:

no name content aspects standards PQ RQ Quiz done
1 types-introduction 👶 introduction evaluate-expressions.10: 10
2 types-undefined-and-null 👶 introduction
💪 workout
🔮 obscura
evaluate-expressions.10: 10
3 types-boolean-and-number 👶 introduction
💪 workout
🔮 obscura
evaluate-expressions.0: 10
evaluate-expressions.2: 10
evaluate-expressions.4: 10
standard-library.1: 10
4 weak-vs-strict-equality-operator 👶 introduction
💪 workout
🔮 obscura
evaluate-expressions.5: 10
evaluate-expressions.4: 10
javascript-syntax.2: 10
evaluate-expressions.3: 10
evaluate-expressions.10: 10
5 the-difference-between-null-undefined-and-nan 👶 introduction
💪 workout
🔮 obscura
javascript-syntax.2: 10
evaluate-expressions.10: 10

Exercises:

no name type aspects standards done
1 js-practice-glitch-numbers glitch 💪 workout javascript-syntax.1: 1000
javascript-syntax.2: 1000
write-expressions.0: 1000
evaluate-expressions.0: 1000
2 js-practice-glitch-math glitch 💪 workout javascript-syntax.2: 1000
write-expressions.1: 1000
evaluate-expressions.1: 1000

Game:

name type aspects standards done
taking-precedence fillTheGap 💪 workout javascript-syntax.2: 1000
write-expressions.0: 1000
evaluate-expressions.0: 1000

Insights:

no name content aspects standards PQ RQ Quiz done
1 if-statement 👶 introduction control-flow.0: 10
control-flow.1: 10
2 loops-part-1 👶 introduction control-flow.0: 10
control-flow.3: 10
control-flow.4: 10
3 loops-part-2 👶 introduction control-flow.0: 10
control-flow.3: 10
4 data-type-comparison-in-switch-statements 👶 introduction control-flow.2: 10
data-types-structures.5: 10

Exercises:

no name type aspects standards done
1 js-practice-glitch-if glitch 👶 introduction javascript-syntax.2: 1000
control-flow.1: 1000
2 js-practice-if-else codewars 👶 introduction
💪 workout
control-flow.0: 1000
control-flow.1: 1000
control-flow.5: 1000
write-expressions.0: 1000
3 js-practice-switch-case codewars control-flow.0: 1000
control-flow.2: 1000
control-flow.5: 1000
write-expressions.0: 1000
4 js-practice-for-loops glitch control-flow.0: 1000
control-flow.3: 1000
control-flow.5: 1000
write-expressions.0: 1000
5 js-practice-while-loops codewars control-flow.0: 1000
control-flow.4: 1000
control-flow.5: 1000
write-expressions.0: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 declaring-functions 👶 introduction functions.0: 10
functions.1: 10
2 function-arguments 👶 introduction functions.1: 10
3 access-a-function-s-arguments-as-an-array 👶 introduction functions.1: 10
4 functions-can-be-declared-after-use 👶 introduction functions.8: 10
5 setting-default-values-with-short-circuiting 👶 introduction
💪 workout
evaluate-expressions.5: 10
functions.2: 10

Exercises:

no name type aspects standards done
1 js-practice-glitch-functions glitch 👶 introduction data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
standard-library.4: 1000
2 js-practice-functions codewars 👶 introduction
💪 workout
data-types-structures.0: 1000
data-types-structures.1: 1000
write-expressions.0: 1000
evaluate-expressions.0: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 javascript-history 👶 introduction
🔮 obscura
2 javascript-or-ecmascript 👶 introduction
🔮 obscura
3 infix-operators-are-left-associative 🔮 obscura javascript-syntax.2: 10
write-expressions.0: 10
evaluate-expressions.0: 10
4 strict-mode 👶 introduction
🔮 obscura
javascript-syntax.2: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

6. arrays

Insights:

no name content aspects standards PQ RQ Quiz done
1 arrays 👶 introduction data-types-structures.2: 10
evaluate-expressions.6: 10
data-types-structures.3: 10
data-types-structures.5: 10
2 setting-the-length-of-an-array 👶 introduction
🔮 obscura
data-types-structures.3: 10
data-types-structures.4: 10
3 splice 👶 introduction evaluate-expressions.6: 1000
evaluate-expressions.7: 1000
data-types-structures.3: 1000
standard-library.4: 1000
4 arrays-can-be-used-as-stack 👶 introduction
💪 workout
data-types-structures.2: 10
evaluate-expressions.6: 10
data-types-structures.3: 10

Exercises:

no name type aspects standards done
1 js-practice-glitch-array glitch 👶 introduction data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
2 js-practice-glitch-array-access glitch 👶 introduction data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
3 js-practice-glitch-array-for-loop glitch 👶 introduction data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
control-flow.3: 1000
4 js-practice-arrays glitch evaluate-expressions.6: 1000
evaluate-expressions.7: 1000
data-types-structures.2: 1000
data-types-structures.3: 5000
data-types-structures.4: 5000
data-types-structures.6: 3000
write-expressions.0: 5000
5 js-practice-array-isarray codewars 👶 introduction standard-library.4: 1000
write-expressions.0: 1000
evaluate-expressions.10: 1000
6 js-practice-array-push codewars 👶 introduction evaluate-expressions.6: 1000
evaluate-expressions.7: 1000
standard-library.4: 1000
write-expressions.0: 1000
7 js-practice-array-splice codewars 👶 introduction evaluate-expressions.6: 1000
evaluate-expressions.7: 1000
standard-library.4: 1000
write-expressions.0: 1000

Game:

name type aspects standards done
foo-features-and-fun-facts fillTheGap evaluate-expressions.1: 1000
evaluate-expressions.3: 1000
evaluate-expressions.5: 1000
evaluate-expressions.7: 1000
evaluate-expressions.8: 1000
evaluate-expressions.9: 1000

Insights:

no name content aspects standards PQ RQ Quiz done
1 object-part-1 👶 introduction data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
2 object-part-2 👶 introduction data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
3 deleting-properties 👶 introduction data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
4 keywords-in-hash-keys 👶 introduction data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
5 hasownproperty-method 👶 introduction data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
6 converting-to-and-from-json

Exercises:

no name type aspects standards done
1 js-practice-objects codewars 👶 introduction data-types-structures.2: 1000
data-types-structures.3: 1000
data-types-structures.4: 1000
write-expressions.0: 1000
evaluate-expressions.6: 10
evaluate-expressions.7: 10

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 truthy-falsy 👶 introduction javascript-syntax.2: 10
evaluate-expressions.5: 10
evaluate-expressions.4: 10
evaluate-expressions.3: 10
evaluate-expressions.10: 10
2 truthy-falsy-gotchas 👶 introduction javascript-syntax.2: 10
evaluate-expressions.3: 10
evaluate-expressions.10: 10
evaluate-expressions.5: 10
evaluate-expressions.4: 10
3 be-careful-when-using-typeof 👶 introduction evaluate-expressions.10: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
you-can-t-handle-the-truth tetris 👶 introduction
💪 workout
javascript-syntax.2: 1000
evaluate-expressions.3: 1000
evaluate-expressions.5: 1000
evaluate-expressions.4: 1000
evaluate-expressions.10: 1000

Insights:

no name content aspects standards PQ RQ Quiz done
1 string-replace 👶 introduction
💪 workout
evaluate-expressions.3: 10
write-expressions.1: 10
2 multi-line-string-variables 👶 introduction
💪 workout
evaluate-expressions.3: 10
write-expressions.1: 10
3 most-efficient-way-to-build-html-strings 👶 introduction
💪 workout
evaluate-expressions.3: 10
write-expressions.1: 10
4 using-test-with-regexp 👶 introduction
💪 workout
evaluate-expressions.3: 10
write-expressions.1: 10
standard-library.0: 10

Exercises:

no name type aspects standards done
1 js-practice-string-slice codewars standard-library.0: 1000
write-expressions.0: 1000
2 js-practice-string-indexof codewars standard-library.0: 1000
write-expressions.0: 1000
3 js-practice-string-concat codewars standard-library.0: 1000
write-expressions.0: 1000
4 js-practice-string-touppercase codewars standard-library.0: 1000
write-expressions.0: 1000
5 js-practice-string-charat codewars standard-library.0: 1000
write-expressions.0: 1000
6 js-practice-string-trim codewars standard-library.0: 1000
write-expressions.0: 1000

Game:

⚠️ There is no game in this workout.

10. numbers

Insights:

no name content aspects standards PQ RQ Quiz done
1 base-conversion data-types-structures.0: 10
standard-library.2: 10
2 inaccuracy-of-binary-floating-point-format data-types-structures.0: 10
standard-library.2: 10
evaluate-expressions.1: 10
3 parsing-numbers-and-ieee-754 data-types-structures.0: 10
standard-library.2: 10
evaluate-expressions.1: 10
4 nan-is-a-number evaluate-expressions.1: 10

Exercises:

no name type aspects standards done
1 js-practice-number-tostring glitch 👶 introduction standard-library.1: 1000
standard-library.2: 1000
write-expressions.0: 1000
evaluate-expressions.0: 1000
2 js-practice-math-max codewars standard-library.1: 1000
write-expressions.0: 1000
3 js-practice-math-pow codewars standard-library.1: 1000
write-expressions.0: 1000
4 js-practice-math-log codewars standard-library.1: 1000
write-expressions.0: 1000
5 js-practice-math-random codewars standard-library.1: 1000
write-expressions.0: 1000

Game:

name type aspects standards done
infinity-game fillTheGap data-types-structures.0: 1000
standard-library.2: 1000
evaluate-expressions.1: 1000

Insights:

no name content aspects standards PQ RQ Quiz done
1 get-a-random-item-from-an-array data-types-structures.2: 10
data-types-structures.3: 10
data-types-structures.6: 10
functions.4: 10
2 apply-map-function-to-array-items 👶 introduction
💪 workout
🦑 deep
data-types-structures.2: 10
data-types-structures.3: 10
data-types-structures.6: 10
functions.4: 10
3 filtering-items-out-of-an-array 👶 introduction
💪 workout
data-types-structures.2: 10
data-types-structures.3: 10
data-types-structures.6: 10
functions.4: 10
4 how-to-merge-two-arrays 👶 introduction
💪 workout
data-types-structures.2: 10
data-types-structures.3: 10
data-types-structures.6: 10
5 shuffle-an-array-using-sort-and-random 👶 introduction
💪 workout
data-types-structures.2: 10
data-types-structures.3: 10
data-types-structures.6: 10
standard-library.1: 10
standard-library.4: 10

Exercises:

no name type aspects standards done
1 js-practice-glitch-array-filter glitch 👶 introduction data-types-structures.3: 1000
data-types-structures.4: 1000
data-types-structures.6: 1000
evaluate-expressions.6: 1000
standard-library.4: 1000
2 js-practice-sort-i codewars 👶 introduction
💪 workout
functions.0: 1000
functions.1: 1000
functions.3: 1000
data-types-structures.4: 1000
3 js-practice-sort-ii codewars 👶 introduction
💪 workout
data-types-structures.4: 1000
functions.0: 1000
functions.1: 1000
functions.3: 1000
4 js-practice-array-every codewars standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
5 js-practice-array-reverse codewars standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
6 js-practice-array-map codewars standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
7 js-practice-array-filter codewars standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
8 js-practice-array-concat codewars standard-library.4: 1000
write-expressions.0: 1000
9 js-practice-array-reduce codewars standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 functions-return-undefined-by-default 👶 introduction
💪 workout
functions.1: 10
2 check-if-a-function-exists evaluate-expressions.9: 10
functions.8: 10
control-flow.5: 10
control-flow.1: 10
3 function-constructor-vs-function-expression 👶 introduction functions.0: 10
functions.1: 10
functions.3: 10
functions.4: 10
4 anonymous-functions 👶 introduction
💪 workout
functions.4: 10
functions.8: 10
5 iife-pattern 👶 introduction
💪 workout
functions.4: 10
functions.5: 10
functions.6: 10
functions.7: 10
6 functions-are-objects 👶 introduction
💪 workout
🦑 deep
🔮 obscura
functions.4: 10
functions.8: 10

Exercises:

no name type aspects standards done
1 js-practice-this codewars execution-context.2: 1000
execution-context.3: 1000
execution-context.4: 1000
2 js-practice-default-parameters codewars functions.0: 1000
functions.1: 1000
functions.2: 1000
functions.3: 1000

Game:

⚠️ There is no game in this workout.

13. scope

Insights:

no name content aspects standards PQ RQ Quiz done
1 hoisting 👶 introduction
💪 workout
functions.5: 10
2 hoisting-applies-only-to-variable-declarations-not-initializations 💪 workout
🦑 deep
🔮 obscura
functions.5: 10
3 no-block-scope 💪 workout
🦑 deep
🔮 obscura
functions.5: 10
4 scope-and-strict-mode 💪 workout
🦑 deep
🔮 obscura
functions.5: 10
5 closures functions.5: 10

Exercises:

no name type aspects standards done
1 js-practice-hoisting codewars
2 js-practice-closures codewars functions.0: 1000
functions.1: 1000
functions.3: 1000
functions.4: 1000
functions.6: 1000

Game:

name type aspects standards done
think-you-know-javascript fillTheGap functions.5: 1000

14. errors

Insights:

no name content aspects standards PQ RQ Quiz done
1 exceptions 👶 introduction
💪 workout
control-flow.6: 10
exceptions.2: 10
exceptions.3: 10
2 debugging 👶 introduction
💪 workout
exceptions.4: 10
3 detect-an-error-type 👶 introduction
💪 workout
exceptions.0: 10
exceptions.1: 10
exceptions.2: 10
4 catch-is-block-scoped 💪 workout
🦑 deep
🔮 obscura
exceptions.2: 10
5 online-debugging-options 👶 introduction
🔮 obscura

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 context-in-javascript execution-context.4: 10
execution-context.3: 10
2 changing-a-functions-context-with-fn-call-object functions.1: 10
execution-context.1: 10
3 function-call-method 👶 introduction
💪 workout
functions.1: 10
execution-context.1: 10
4 difference-between-call-and-apply-methods 👶 introduction
💪 workout
functions.1: 10
execution-context.1: 10
5 bind 👶 introduction
💪 workout
functions.5: 10
execution-context.0: 10

Exercises:

no name type aspects standards done
1 js-practice-bind codewars execution-context.0: 1000
2 js-practice-call codewars execution-context.1: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 format-currency-in-javascript 👶 introduction
🦑 deep
write-expressions.0: 10
evaluate-expressions.3: 10
standard-library.1: 10
2 easily-generate-a-random-hex-color write-expressions.0: 10
evaluate-expressions.3: 10
standard-library.1: 10
3 round-numbers-to-n-decimals write-expressions.0: 10
evaluate-expressions.3: 10
4 using-the-double-tilde write-expressions.0: 10
evaluate-expressions.3: 10
data-types-structures.1: 10
5 quick-way-to-format-integers-with-a-fixed-number-of-digits 👶 introduction
💪 workout
write-expressions.0: 10
evaluate-expressions.3: 10
standard-library.1: 10
data-types-structures.3: 10

Exercises:

no name type aspects standards done
1 js-practice-number-tostring codewars standard-library.2: 1000
write-expressions.0: 1000
2 js-practice-number-tofixed codewars standard-library.2: 1000
write-expressions.0: 1000
3 js-practice-math-round codewars standard-library.1: 1000
write-expressions.0: 1000

Game:

name type aspects standards done
using-the-double-tilde-game fillTheGap write-expressions.0: 1000
evaluate-expressions.3: 1000
data-types-structures.1: 1000

Insights:

no name content aspects standards PQ RQ Quiz done
1 method-chaining 👶 introduction
💪 workout
functions.1: 10
functions.6: 10
execution-context.2: 10
2 javascript-compilation 🦑 deep
💪 workout
🔮 obscura
functions.1: 10
functions.5: 10
functions.6: 10
execution-context.4: 10
3 prototype-methods 👶 introduction
💪 workout
🦑 deep
prototype-inherit.0: 10
4 meaning-of-polyfill 🦑 deep
💪 workout
5 using-eval 🔮 obscura
💪 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 milliseconds-since-epoch standard-library.5: 10
2 counting-the-months-from-zero 💪 workout standard-library.5: 10
3 performing-a-function-at-timed-intervals 💪 workout
👶 introduction
🦑 deep
async.0: 10
4 avoid-using-with javascript-syntax.0: 10

Exercises:

no name type aspects standards done
1 js-practice-date codewars standard-library.5: 1000
write-expressions.0: 1000

Game:

⚠️ There is no game in this workout.

19. async

Insights:

no name content aspects standards PQ RQ Quiz done
1 async-a-history 👶 introduction
🔮 obscura
async.3: 10
2 the-difference-between-parallel-asynchronous-and-concurrent 💪 workout
👶 introduction
🔮 obscura
🦑 deep
async.3: 10
async.2: 10
use-modules.2: 10
3 csp-using-js-csp 💪 workout
🔮 obscura
🦑 deep
async.3: 10
async.2: 10
use-modules.2: 10
4 csp-using-async-csp-and-es7 💪 workout
🦑 deep
async.3: 10
async.2: 10
use-modules.2: 10
5 flow-control-using-co 💪 workout
🔮 obscura
🦑 deep
async.3: 10
async.2: 10
use-modules.2: 10
es6-functions.1: 10

Exercises:

no name type aspects standards done
1 js-practice-async codewars 🦑 deep
💪 workout
async.0: 1000
2 js-practice-event-loop codewars 🦑 deep
💪 workout
async.1: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 error-first-callbacks 🔮 obscura
💪 workout
🦑 deep
async.0: 10
identify-common-design-patterns.3: 10
2 name-your-callback-functions-to-avoid-callback-hell 💪 workout
🦑 deep
🔮 obscura
async.0: 10
functions.3: 10
control-flow.5: 10
3 transform-values-into-promises 💪 workout
🦑 deep
🔮 obscura
async.2: 10
4 using-timers-with-extra-arguments 🔮 obscura
💪 workout
🦑 deep
async.0: 10
5 inversion-of-control 💪 workout
🦑 deep
🔮 obscura
async.2: 10

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Standards

✅ - At least one insight covers this

❌ - Nothing covers this

🛠️ - This standard has no objectives yet

✅ Identify JavaScript Syntax

  1. ✅ Identify JavaScript control structures
  2. ✅ Identify JavaScript statements
  3. ✅ Evaluate the validity of JavaScript syntax

✅ Identify and use JavaScript's data types and structures and their respective operations

  1. ✅ Identify primitive types in JavaScript
  2. ✅ Use primitive operators to operate on primitive types
  3. ✅ Identify data structures in JavaScript
  4. ✅ Use built-in data structures in JavaScript
  5. ✅ Perform primitive operations on data structures in JavaScript
  6. ✅ Access deeply nested data structures
  7. ✅ Functionally iterate over a data structure

❌ Write Javascript Expressions

  1. ✅ Write simple expressions in JavaScript using each data type
  2. ✅ Compose simple expressions into complex expressions
  3. ❌ Decompose complex expressions into simple expressions

❌ Evaluate JavaScript Expressions

  1. ✅ Accurately predict the return value of simple numeric JavaScript expressions
  2. ✅ Accurately predict the return value of complex numeric JavaScript expressions
  3. ✅ Accurately predict the return value of simple string JavaScript expressions
  4. ✅ Accurately predict the return value of complex string JavaScript expressions
  5. ✅ Accurately predict the return value of simple boolean JavaScript expressions
  6. ✅ Accurately predict the return value of complex boolean JavaScript expressions
  7. ✅ Accurately predict the result of simple JavaScript expressions operating on a data structure
  8. ✅ Accurately predict the result of complex JavaScript expressions operating on a data structure
  9. ❌ Accurately predict the result of complex data structure access operations
  10. ✅ Accurately predict the return value of function or constructor
  11. ✅ Accurately predict the type of a given expression

✅ Use control flow structures to control the flow of a program in JavaScript

  1. ✅ Make a decision about which control flow structure to use in order to execute statements in the correct logical sequence
  2. ✅ Demonstrate the use of if statements
  3. ✅ Demonstrate the use of switch statements
  4. ✅ Demonstrate the use of for, for of, for in loops
  5. ✅ Demonstrate the use of while loops
  6. ✅ Demonstrate the use of creating and calling functions
  7. ✅ Demonstrate the use of using a try..catch block to handle exceptions programmatically

✅ Use functions in JavaScript

  1. ✅ Write a function
  2. ✅ Write a parameterized function
  3. ✅ Write a parameterized function with defaults
  4. ✅ Write a named function
  5. ✅ Write an anonymous function
  6. ✅ Recognize the rules of variable scope with respect to functions
  7. ✅ Use variable scope to effectively encapsulate code by function
  8. ✅ Use variable scope to effectively constrain the memory use of a parameterized function
  9. ✅ Distinguish between function expressions and named functions

✅ Use the standard library to perform common operations on data with JavaScript

  1. ✅ Perform common string manipulation tasks
  2. ✅ Perform math operations, use the Math built-in library
  3. ✅ Accurately perform type-casting operations
  4. ✅ Use Console methods to output data
  5. ✅ Perform collection manipulation with Array methods (map, filter, reduce, etc)
  6. ✅ Perform Date manipulation operations, use the Date built-in library

❌ Perform and manage asynchronous operations in JavaScript

  1. ✅ Use callbacks to asynchronously execute code
  2. ❌ Explain the event loop in JavaScript
  3. ✅ Use Promises to perform sequential asynchronous operations
  4. ✅ Use async and await to create asynchronously resolving generator functions

✅ Use and manipulate the execution context of a function in JavaScript

  1. ✅ Use bind to produce a bound function
  2. ✅ Use call and apply to call a function with an explicit this value
  3. ✅ Use this to store properties on an execution context
  4. ✅ Use this to modify an instance's properties
  5. ✅ Identify what the value of this is given a line in a code snippet

❌ Use prototypes to create class-like objects in JavaScript

  1. ❌ Use a constructor function and the execution context of that function to produce an instance with particular properties
  2. ❌ Use the prototype of the constructor function to set methods on instances produced by the constructor function
  3. ❌ Modify the instance using a prototype method

❌ Use prototypes to inherit attributes from another object in JavaScript

  1. ✅ Set the prototype of a constructor function to inherit methods from another object
  2. ❌ Modify an instance using an inherited prototype's method

✅ Identify and handle exceptions in JavaScript

  1. ✅ Distinguish JavaScript error types
  2. ✅ Identify the type of exception thrown from a JavaScript stack trace
  3. ✅ Use a try..catch block to handle an exception
  4. ✅ Create and throw a custom error type
  5. ✅ Use the debugger statement with a JavaScript debugger

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. why-learn-javascript
  2. console-in-javascript
  3. javascript-basics-part-1
  4. javascript-basics-part-2
  5. types-introduction
  6. types-undefined-and-null
  7. types-boolean-and-number
  8. weak-vs-strict-equality-operator
  9. the-difference-between-null-undefined-and-nan
  10. if-statement
  11. loops-part-1
  12. loops-part-2
  13. data-type-comparison-in-switch-statements
  14. declaring-functions
  15. function-arguments
  16. access-a-function-s-arguments-as-an-array
  17. functions-can-be-declared-after-use
  18. setting-default-values-with-short-circuiting
  19. javascript-history
  20. javascript-or-ecmascript
  21. strict-mode
  22. arrays
  23. setting-the-length-of-an-array
  24. splice
  25. arrays-can-be-used-as-stack
  26. object-part-1
  27. object-part-2
  28. deleting-properties
  29. keywords-in-hash-keys
  30. hasownproperty-method
  31. truthy-falsy
  32. truthy-falsy-gotchas
  33. be-careful-when-using-typeof
  34. string-replace
  35. multi-line-string-variables
  36. most-efficient-way-to-build-html-strings
  37. using-test-with-regexp
  38. apply-map-function-to-array-items
  39. filtering-items-out-of-an-array
  40. how-to-merge-two-arrays
  41. shuffle-an-array-using-sort-and-random
  42. functions-return-undefined-by-default
  43. function-constructor-vs-function-expression
  44. anonymous-functions
  45. iife-pattern
  46. functions-are-objects
  47. hoisting
  48. exceptions
  49. debugging
  50. detect-an-error-type
  51. online-debugging-options
  52. function-call-method
  53. difference-between-call-and-apply-methods
  54. bind
  55. format-currency-in-javascript
  56. quick-way-to-format-integers-with-a-fixed-number-of-digits
  57. method-chaining
  58. prototype-methods
  59. performing-a-function-at-timed-intervals
  60. async-a-history
  61. the-difference-between-parallel-asynchronous-and-concurrent

Exercises:

  1. js-practice-console
  2. js-practice-glitch-if
  3. js-practice-if-else
  4. js-practice-glitch-functions
  5. js-practice-functions
  6. js-practice-glitch-array
  7. js-practice-glitch-array-access
  8. js-practice-glitch-array-for-loop
  9. js-practice-array-isarray
  10. js-practice-array-push
  11. js-practice-array-splice
  12. js-practice-objects
  13. js-practice-number-tostring
  14. js-practice-glitch-array-filter
  15. js-practice-sort-i
  16. js-practice-sort-ii

Games:

  1. you-can-t-handle-the-truth

💪 Workout

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

Insights:

  1. types-undefined-and-null
  2. types-boolean-and-number
  3. weak-vs-strict-equality-operator
  4. the-difference-between-null-undefined-and-nan
  5. setting-default-values-with-short-circuiting
  6. arrays-can-be-used-as-stack
  7. string-replace
  8. multi-line-string-variables
  9. most-efficient-way-to-build-html-strings
  10. using-test-with-regexp
  11. apply-map-function-to-array-items
  12. filtering-items-out-of-an-array
  13. how-to-merge-two-arrays
  14. shuffle-an-array-using-sort-and-random
  15. functions-return-undefined-by-default
  16. anonymous-functions
  17. iife-pattern
  18. functions-are-objects
  19. hoisting
  20. hoisting-applies-only-to-variable-declarations-not-initializations
  21. no-block-scope
  22. scope-and-strict-mode
  23. exceptions
  24. debugging
  25. detect-an-error-type
  26. catch-is-block-scoped
  27. function-call-method
  28. difference-between-call-and-apply-methods
  29. bind
  30. quick-way-to-format-integers-with-a-fixed-number-of-digits
  31. method-chaining
  32. javascript-compilation
  33. prototype-methods
  34. meaning-of-polyfill
  35. using-eval
  36. counting-the-months-from-zero
  37. performing-a-function-at-timed-intervals
  38. the-difference-between-parallel-asynchronous-and-concurrent
  39. csp-using-js-csp
  40. csp-using-async-csp-and-es7
  41. flow-control-using-co
  42. error-first-callbacks
  43. name-your-callback-functions-to-avoid-callback-hell
  44. transform-values-into-promises
  45. using-timers-with-extra-arguments
  46. inversion-of-control

Exercises:

  1. js-practice-console
  2. js-practice-glitch-numbers
  3. js-practice-glitch-math
  4. js-practice-if-else
  5. js-practice-functions
  6. js-practice-sort-i
  7. js-practice-sort-ii
  8. js-practice-async
  9. js-practice-event-loop

Games:

  1. taking-precedence
  2. you-can-t-handle-the-truth

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. apply-map-function-to-array-items
  2. functions-are-objects
  3. hoisting-applies-only-to-variable-declarations-not-initializations
  4. no-block-scope
  5. scope-and-strict-mode
  6. catch-is-block-scoped
  7. format-currency-in-javascript
  8. javascript-compilation
  9. prototype-methods
  10. meaning-of-polyfill
  11. performing-a-function-at-timed-intervals
  12. the-difference-between-parallel-asynchronous-and-concurrent
  13. csp-using-js-csp
  14. csp-using-async-csp-and-es7
  15. flow-control-using-co
  16. error-first-callbacks
  17. name-your-callback-functions-to-avoid-callback-hell
  18. transform-values-into-promises
  19. using-timers-with-extra-arguments
  20. inversion-of-control

Exercises:

  1. js-practice-async
  2. js-practice-event-loop

⚠️ There are no games tagged with this aspect in core.

✨ New

Recently added/gained traction feature

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

🔮 Obscura

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

Insights:

  1. types-undefined-and-null
  2. types-boolean-and-number
  3. weak-vs-strict-equality-operator
  4. the-difference-between-null-undefined-and-nan
  5. javascript-history
  6. javascript-or-ecmascript
  7. infix-operators-are-left-associative
  8. strict-mode
  9. setting-the-length-of-an-array
  10. functions-are-objects
  11. hoisting-applies-only-to-variable-declarations-not-initializations
  12. no-block-scope
  13. scope-and-strict-mode
  14. catch-is-block-scoped
  15. online-debugging-options
  16. javascript-compilation
  17. using-eval
  18. async-a-history
  19. the-difference-between-parallel-asynchronous-and-concurrent
  20. csp-using-js-csp
  21. flow-control-using-co
  22. error-first-callbacks
  23. name-your-callback-functions-to-avoid-callback-hell
  24. transform-values-into-promises
  25. using-timers-with-extra-arguments
  26. inversion-of-control

⚠️ There are no exercises tagged with this aspect in core. :warning: There are no games tagged with this aspect in core.

Content without aspects

  1. js-practice-basics-part-2
  2. js-practice-switch-case
  3. js-practice-for-loops
  4. js-practice-while-loops
  5. js-practice-arrays
  6. foo-features-and-fun-facts
  7. converting-to-and-from-json
  8. js-practice-string-slice
  9. js-practice-string-indexof
  10. js-practice-string-concat
  11. js-practice-string-touppercase
  12. js-practice-string-charat
  13. js-practice-string-trim
  14. base-conversion
  15. inaccuracy-of-binary-floating-point-format
  16. parsing-numbers-and-ieee-754
  17. nan-is-a-number
  18. js-practice-math-max
  19. js-practice-math-pow
  20. js-practice-math-log
  21. js-practice-math-random
  22. infinity-game
  23. get-a-random-item-from-an-array
  24. js-practice-array-every
  25. js-practice-array-reverse
  26. js-practice-array-map
  27. js-practice-array-filter
  28. js-practice-array-concat
  29. js-practice-array-reduce
  30. check-if-a-function-exists
  31. js-practice-this
  32. js-practice-default-parameters
  33. closures
  34. js-practice-hoisting
  35. js-practice-closures
  36. think-you-know-javascript
  37. context-in-javascript
  38. changing-a-functions-context-with-fn-call-object
  39. js-practice-bind
  40. js-practice-call
  41. easily-generate-a-random-hex-color
  42. round-numbers-to-n-decimals
  43. using-the-double-tilde
  44. js-practice-number-tostring
  45. js-practice-number-tofixed
  46. js-practice-math-round
  47. using-the-double-tilde-game
  48. milliseconds-since-epoch
  49. avoid-using-with
  50. js-practice-date
Clone this wiki locally