Skip to content

JavaScript Core Course

enki-hq edited this page Feb 11, 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
💪 workout
control-flow.0: 10
control-flow.3: 10
4 data-type-comparison-in-switch-statements 👶 introduction
💪 workout
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 👶 introduction control-flow.0: 1000
control-flow.2: 1000
control-flow.5: 1000
write-expressions.0: 1000
4 js-practice-for-loops glitch 👶 introduction control-flow.0: 1000
control-flow.3: 1000
control-flow.5: 1000
write-expressions.0: 1000
5 js-practice-while-loops codewars 👶 introduction 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
💪 workout
functions.1: 10
3 access-a-function-s-arguments-as-an-array 👶 introduction
💪 workout
functions.1: 10
4 functions-can-be-declared-after-use 👶 introduction
💪 workout
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
💪 workout
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
💪 workout
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
💪 workout
🔮 obscura
data-types-structures.3: 10
data-types-structures.4: 10
3 splice 👶 introduction
💪 workout
🔮 obscura
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
💪 workout
data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
2 js-practice-glitch-array-access glitch 👶 introduction
💪 workout
data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
3 js-practice-glitch-array-for-loop glitch 👶 introduction
💪 workout
data-types-structures.3: 1000
data-types-structures.4: 1000
evaluate-expressions.6: 1000
control-flow.3: 1000
4 js-practice-arrays glitch 👶 introduction
💪 workout
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
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
evaluate-expressions.10: 1000
6 js-practice-array-push codewars 👶 introduction
💪 workout
evaluate-expressions.6: 1000
evaluate-expressions.7: 1000
standard-library.4: 1000
write-expressions.0: 1000
7 js-practice-array-splice codewars 👶 introduction
💪 workout
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 👶 introduction
💪 workout
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
💪 workout
data-types-structures.3: 10
data-types-structures.4: 10
evaluate-expressions.6: 10
evaluate-expressions.7: 10
2 object-part-2 👶 introduction
💪 workout
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
🔮 obscura
💪 workout
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 👶 introduction
💪 workout

Exercises:

no name type aspects standards done
1 js-practice-objects codewars 👶 introduction
💪 workout
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
💪 workout
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
💪 workout
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
💪 workout
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
🔮 obscura
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 👶 introduction
💪 workout
standard-library.0: 1000
write-expressions.0: 1000
2 js-practice-string-indexof codewars 👶 introduction
💪 workout
standard-library.0: 1000
write-expressions.0: 1000
3 js-practice-string-concat codewars 👶 introduction
💪 workout
standard-library.0: 1000
write-expressions.0: 1000
4 js-practice-string-touppercase codewars 👶 introduction
💪 workout
standard-library.0: 1000
write-expressions.0: 1000
5 js-practice-string-charat codewars 👶 introduction
💪 workout
standard-library.0: 1000
write-expressions.0: 1000
6 js-practice-string-trim codewars 👶 introduction
💪 workout
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 👶 introduction
💪 workout
🔮 obscura
data-types-structures.0: 10
standard-library.2: 10
2 inaccuracy-of-binary-floating-point-format 💪 workout
🦑 deep
🔮 obscura
data-types-structures.0: 10
standard-library.2: 10
evaluate-expressions.1: 10
3 parsing-numbers-and-ieee-754 💪 workout
🦑 deep
🔮 obscura
data-types-structures.0: 10
standard-library.2: 10
evaluate-expressions.1: 10
4 nan-is-a-number 👶 introduction
🦑 deep
🔮 obscura
evaluate-expressions.1: 10

Exercises:

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

Game:

name type aspects standards done
infinity-game fillTheGap 👶 introduction
💪 workout
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 👶 introduction
💪 workout
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
💪 workout
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 👶 introduction
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
5 js-practice-array-reverse codewars 👶 introduction
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
6 js-practice-array-map codewars 👶 introduction
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
7 js-practice-array-filter codewars 👶 introduction
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
data-types-structures.6: 1000
8 js-practice-array-concat codewars 👶 introduction
💪 workout
standard-library.4: 1000
write-expressions.0: 1000
9 js-practice-array-reduce codewars 👶 introduction
💪 workout
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 👶 introduction
💪 workout
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
🦑 deep
💪 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 👶 introduction
💪 workout
execution-context.2: 1000
execution-context.3: 1000
execution-context.4: 1000
2 js-practice-default-parameters codewars 👶 introduction
💪 workout
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 👶 introduction
💪 workout
functions.5: 10

Exercises:

no name type aspects standards done
1 js-practice-hoisting codewars 👶 introduction
💪 workout
2 js-practice-closures codewars 👶 introduction
💪 workout
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 👶 introduction
💪 workout
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
🔮 obscura
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 🦑 deep
👶 introduction
💪 workout
execution-context.4: 10
execution-context.3: 10
2 changing-a-functions-context-with-fn-call-object 🦑 deep
💪 workout
functions.1: 10
execution-context.1: 10
3 function-call-method 🦑 deep
💪 workout
functions.1: 10
execution-context.1: 10
4 difference-between-call-and-apply-methods 🔮 obscura
🦑 deep
💪 workout
functions.1: 10
execution-context.1: 10
5 bind 🦑 deep
💪 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
💪 workout
write-expressions.0: 10
evaluate-expressions.3: 10
standard-library.1: 10
2 easily-generate-a-random-hex-color 💪 workout
🦑 deep
🔮 obscura
write-expressions.0: 10
evaluate-expressions.3: 10
standard-library.1: 10
3 round-numbers-to-n-decimals 👶 introduction
💪 workout
write-expressions.0: 10
evaluate-expressions.3: 10
4 using-the-double-tilde 👶 introduction
💪 workout
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
🔮 obscura
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 👶 introduction
💪 workout
standard-library.2: 1000
write-expressions.0: 1000
2 js-practice-number-tofixed codewars 👶 introduction
💪 workout
standard-library.2: 1000
write-expressions.0: 1000
3 js-practice-math-round codewars 👶 introduction standard-library.1: 1000
write-expressions.0: 1000

Game:

name type aspects standards done
using-the-double-tilde-game fillTheGap 👶 introduction
💪 workout
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 👶 introduction
💪 workout
standard-library.5: 10
2 counting-the-months-from-zero 👶 introduction
💪 workout
🔮 obscura
standard-library.5: 10
3 performing-a-function-at-timed-intervals 💪 workout
👶 introduction
🦑 deep
async.0: 10
4 avoid-using-with 💪 workout
🔮 obscura
javascript-syntax.0: 10

Exercises:

no name type aspects standards done
1 js-practice-date codewars 👶 introduction
💪 workout
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. converting-to-and-from-json
  32. truthy-falsy
  33. truthy-falsy-gotchas
  34. be-careful-when-using-typeof
  35. string-replace
  36. multi-line-string-variables
  37. most-efficient-way-to-build-html-strings
  38. using-test-with-regexp
  39. base-conversion
  40. nan-is-a-number
  41. get-a-random-item-from-an-array
  42. apply-map-function-to-array-items
  43. filtering-items-out-of-an-array
  44. how-to-merge-two-arrays
  45. shuffle-an-array-using-sort-and-random
  46. functions-return-undefined-by-default
  47. check-if-a-function-exists
  48. function-constructor-vs-function-expression
  49. anonymous-functions
  50. iife-pattern
  51. functions-are-objects
  52. hoisting
  53. closures
  54. exceptions
  55. debugging
  56. detect-an-error-type
  57. online-debugging-options
  58. context-in-javascript
  59. format-currency-in-javascript
  60. round-numbers-to-n-decimals
  61. using-the-double-tilde
  62. quick-way-to-format-integers-with-a-fixed-number-of-digits
  63. method-chaining
  64. prototype-methods
  65. milliseconds-since-epoch
  66. counting-the-months-from-zero
  67. performing-a-function-at-timed-intervals
  68. async-a-history
  69. 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-switch-case
  5. js-practice-for-loops
  6. js-practice-while-loops
  7. js-practice-glitch-functions
  8. js-practice-functions
  9. js-practice-glitch-array
  10. js-practice-glitch-array-access
  11. js-practice-glitch-array-for-loop
  12. js-practice-arrays
  13. js-practice-array-isarray
  14. js-practice-array-push
  15. js-practice-array-splice
  16. js-practice-objects
  17. js-practice-string-slice
  18. js-practice-string-indexof
  19. js-practice-string-concat
  20. js-practice-string-touppercase
  21. js-practice-string-charat
  22. js-practice-string-trim
  23. js-practice-number-tostring
  24. js-practice-math-max
  25. js-practice-math-pow
  26. js-practice-math-log
  27. js-practice-math-random
  28. js-practice-glitch-array-filter
  29. js-practice-sort-i
  30. js-practice-sort-ii
  31. js-practice-array-every
  32. js-practice-array-reverse
  33. js-practice-array-map
  34. js-practice-array-filter
  35. js-practice-array-concat
  36. js-practice-array-reduce
  37. js-practice-this
  38. js-practice-default-parameters
  39. js-practice-hoisting
  40. js-practice-closures
  41. js-practice-number-tostring
  42. js-practice-number-tofixed
  43. js-practice-math-round
  44. js-practice-date

Games:

  1. foo-features-and-fun-facts
  2. you-can-t-handle-the-truth
  3. infinity-game
  4. think-you-know-javascript
  5. using-the-double-tilde-game

💪 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. loops-part-2
  6. data-type-comparison-in-switch-statements
  7. function-arguments
  8. access-a-function-s-arguments-as-an-array
  9. functions-can-be-declared-after-use
  10. setting-default-values-with-short-circuiting
  11. arrays
  12. setting-the-length-of-an-array
  13. splice
  14. arrays-can-be-used-as-stack
  15. object-part-1
  16. object-part-2
  17. keywords-in-hash-keys
  18. converting-to-and-from-json
  19. truthy-falsy
  20. truthy-falsy-gotchas
  21. be-careful-when-using-typeof
  22. string-replace
  23. multi-line-string-variables
  24. most-efficient-way-to-build-html-strings
  25. using-test-with-regexp
  26. base-conversion
  27. inaccuracy-of-binary-floating-point-format
  28. parsing-numbers-and-ieee-754
  29. get-a-random-item-from-an-array
  30. apply-map-function-to-array-items
  31. filtering-items-out-of-an-array
  32. how-to-merge-two-arrays
  33. shuffle-an-array-using-sort-and-random
  34. functions-return-undefined-by-default
  35. check-if-a-function-exists
  36. anonymous-functions
  37. iife-pattern
  38. functions-are-objects
  39. hoisting
  40. hoisting-applies-only-to-variable-declarations-not-initializations
  41. no-block-scope
  42. scope-and-strict-mode
  43. closures
  44. exceptions
  45. debugging
  46. detect-an-error-type
  47. catch-is-block-scoped
  48. context-in-javascript
  49. changing-a-functions-context-with-fn-call-object
  50. function-call-method
  51. difference-between-call-and-apply-methods
  52. bind
  53. format-currency-in-javascript
  54. easily-generate-a-random-hex-color
  55. round-numbers-to-n-decimals
  56. using-the-double-tilde
  57. quick-way-to-format-integers-with-a-fixed-number-of-digits
  58. method-chaining
  59. javascript-compilation
  60. prototype-methods
  61. meaning-of-polyfill
  62. using-eval
  63. milliseconds-since-epoch
  64. counting-the-months-from-zero
  65. performing-a-function-at-timed-intervals
  66. avoid-using-with
  67. the-difference-between-parallel-asynchronous-and-concurrent
  68. csp-using-js-csp
  69. csp-using-async-csp-and-es7
  70. flow-control-using-co
  71. error-first-callbacks
  72. name-your-callback-functions-to-avoid-callback-hell
  73. transform-values-into-promises
  74. using-timers-with-extra-arguments
  75. 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-glitch-functions
  6. js-practice-functions
  7. js-practice-glitch-array
  8. js-practice-glitch-array-access
  9. js-practice-glitch-array-for-loop
  10. js-practice-arrays
  11. js-practice-array-isarray
  12. js-practice-array-push
  13. js-practice-array-splice
  14. js-practice-objects
  15. js-practice-string-slice
  16. js-practice-string-indexof
  17. js-practice-string-concat
  18. js-practice-string-touppercase
  19. js-practice-string-charat
  20. js-practice-string-trim
  21. js-practice-number-tostring
  22. js-practice-math-max
  23. js-practice-math-pow
  24. js-practice-math-log
  25. js-practice-math-random
  26. js-practice-glitch-array-filter
  27. js-practice-sort-i
  28. js-practice-sort-ii
  29. js-practice-array-every
  30. js-practice-array-reverse
  31. js-practice-array-map
  32. js-practice-array-filter
  33. js-practice-array-concat
  34. js-practice-array-reduce
  35. js-practice-this
  36. js-practice-default-parameters
  37. js-practice-hoisting
  38. js-practice-closures
  39. js-practice-number-tostring
  40. js-practice-number-tofixed
  41. js-practice-date
  42. js-practice-async
  43. js-practice-event-loop

Games:

  1. taking-precedence
  2. foo-features-and-fun-facts
  3. you-can-t-handle-the-truth
  4. infinity-game
  5. think-you-know-javascript
  6. using-the-double-tilde-game

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. inaccuracy-of-binary-floating-point-format
  2. parsing-numbers-and-ieee-754
  3. nan-is-a-number
  4. apply-map-function-to-array-items
  5. iife-pattern
  6. functions-are-objects
  7. hoisting-applies-only-to-variable-declarations-not-initializations
  8. no-block-scope
  9. scope-and-strict-mode
  10. catch-is-block-scoped
  11. context-in-javascript
  12. changing-a-functions-context-with-fn-call-object
  13. function-call-method
  14. difference-between-call-and-apply-methods
  15. bind
  16. easily-generate-a-random-hex-color
  17. javascript-compilation
  18. prototype-methods
  19. meaning-of-polyfill
  20. performing-a-function-at-timed-intervals
  21. the-difference-between-parallel-asynchronous-and-concurrent
  22. csp-using-js-csp
  23. csp-using-async-csp-and-es7
  24. flow-control-using-co
  25. error-first-callbacks
  26. name-your-callback-functions-to-avoid-callback-hell
  27. transform-values-into-promises
  28. using-timers-with-extra-arguments
  29. 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. splice
  11. keywords-in-hash-keys
  12. most-efficient-way-to-build-html-strings
  13. base-conversion
  14. inaccuracy-of-binary-floating-point-format
  15. parsing-numbers-and-ieee-754
  16. nan-is-a-number
  17. functions-are-objects
  18. hoisting-applies-only-to-variable-declarations-not-initializations
  19. no-block-scope
  20. scope-and-strict-mode
  21. debugging
  22. catch-is-block-scoped
  23. online-debugging-options
  24. difference-between-call-and-apply-methods
  25. easily-generate-a-random-hex-color
  26. quick-way-to-format-integers-with-a-fixed-number-of-digits
  27. javascript-compilation
  28. using-eval
  29. counting-the-months-from-zero
  30. avoid-using-with
  31. async-a-history
  32. the-difference-between-parallel-asynchronous-and-concurrent
  33. csp-using-js-csp
  34. flow-control-using-co
  35. error-first-callbacks
  36. name-your-callback-functions-to-avoid-callback-hell
  37. transform-values-into-promises
  38. using-timers-with-extra-arguments
  39. 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-bind
  3. js-practice-call
Clone this wiki locally