Skip to content

JavaScript Core Course

enki-hq edited this page Jan 17, 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 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 evaluate-expressions.10: 10
3 types-boolean-and-number 👶 introduction evaluate-expressions.0: 10
evaluate-expressions.2: 10
evaluate-expressions.4: 10
standard-library.1: 10
4 weak-vs-strict-equality-operator 👶 introduction 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 javascript-syntax.2: 10
evaluate-expressions.10: 10

Exercises:

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

Game:

name type aspects standards done
taking-precedence fillTheGap 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
💪 workout
🔮 obscura
async.3: 10
2 the-difference-between-parallel-asynchronous-and-concurrent 💪 workout
🦑 deep
async.3: 10
async.2: 10
use-modules.2: 10
3 csp-using-js-csp 💪 workout
🦑 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
🦑 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 async.0: 1000
2 js-practice-event-loop codewars 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 👶 introduction
💪 workout
🦑 deep
async.0: 10
identify-common-design-patterns.3: 10
2 name-your-callback-functions-to-avoid-callback-hell async.0: 10
functions.3: 10
control-flow.5: 10
3 transform-values-into-promises 💪 workout
🦑 deep
👶 introduction
async.2: 10
4 using-timers-with-extra-arguments 👶 introduction
💪 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. error-first-callbacks
  62. transform-values-into-promises
  63. using-timers-with-extra-arguments

Exercises:

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

Exercises:

  1. js-practice-if-else
  2. js-practice-functions
  3. js-practice-sort-i
  4. js-practice-sort-ii

Games:

  1. 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. transform-values-into-promises
  18. using-timers-with-extra-arguments
  19. inversion-of-control

⚠️ There are no exercises tagged with this aspect in core. :warning: 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. javascript-history
  2. javascript-or-ecmascript
  3. infix-operators-are-left-associative
  4. strict-mode
  5. setting-the-length-of-an-array
  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. online-debugging-options
  12. javascript-compilation
  13. using-eval
  14. async-a-history
  15. 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-console
  2. js-practice-basics-part-2
  3. js-practice-glitch-numbers
  4. js-practice-glitch-math
  5. taking-precedence
  6. js-practice-switch-case
  7. js-practice-for-loops
  8. js-practice-while-loops
  9. js-practice-arrays
  10. foo-features-and-fun-facts
  11. converting-to-and-from-json
  12. js-practice-string-slice
  13. js-practice-string-indexof
  14. js-practice-string-concat
  15. js-practice-string-touppercase
  16. js-practice-string-charat
  17. js-practice-string-trim
  18. base-conversion
  19. inaccuracy-of-binary-floating-point-format
  20. parsing-numbers-and-ieee-754
  21. nan-is-a-number
  22. js-practice-math-max
  23. js-practice-math-pow
  24. js-practice-math-log
  25. js-practice-math-random
  26. infinity-game
  27. get-a-random-item-from-an-array
  28. js-practice-array-every
  29. js-practice-array-reverse
  30. js-practice-array-map
  31. js-practice-array-filter
  32. js-practice-array-concat
  33. js-practice-array-reduce
  34. check-if-a-function-exists
  35. js-practice-this
  36. js-practice-default-parameters
  37. closures
  38. js-practice-hoisting
  39. js-practice-closures
  40. think-you-know-javascript
  41. context-in-javascript
  42. changing-a-functions-context-with-fn-call-object
  43. js-practice-bind
  44. js-practice-call
  45. easily-generate-a-random-hex-color
  46. round-numbers-to-n-decimals
  47. using-the-double-tilde
  48. js-practice-number-tostring
  49. js-practice-number-tofixed
  50. js-practice-math-round
  51. using-the-double-tilde-game
  52. milliseconds-since-epoch
  53. avoid-using-with
  54. js-practice-date
  55. js-practice-async
  56. js-practice-event-loop
  57. name-your-callback-functions-to-avoid-callback-hell

Clone this wiki locally