Closed
Description
Here is a list of concepts modified from the C# one. I marked a few that I know exist already, but we should add design document to ALL our current exercises too.
How can you help?:
SEE #951 (comment) if you want something ACTIONABLE.
- For many of these we don't have exercises or exercise ideas yet, for example
chars
+codepoints
doesn't exist yet. These need aimplement new exercise
issue with all the relevant information (see current open issues). - Some of these concepts do have exercise ideas (and/or are being worked on), for example
errors
. Ignore those. - Some of these already have exercises, but are not mentioned in the exercise. @ErikSchierboom can you explain how you assign the concepts and how it gets turned into that automated reference readme document? Once Erik does, we need to update our files (design doc, config.json) so we can do this too.
- We're missing quite a few things from this document. Things missing should be added here and go through the above three "steps".
Concepts
- arrays (
Array.prototype
) - assignment
- basics
- bit-manipulation
- booleans (
boolean
) - casting (JavaScript term: type-conversion)
- chars (JavaScript term: chars and codepoints)
- classes (JavaScript term alternative: prototypes)
- closures
- codepoints
- conditionals-ternary
- constants (
const
for bindings,Object.freeze
for immutability) - constructors
- datetimes (
Date.prototype
) - default-value (in: parameter/argument, destructuring)
- dictionaries (
Map.prototype
,WeakMap.prototype
,object
) - encapsulation (JavaScript term: closures)
- equality
- exception-filtering (JavaScript term: type-checking)
- exceptions
- fields (JavaScript term: properties)
- floating-point-numbers (JavaScript term: numbers)
- for-loops
- foreach-loops
- functions
- if-statements
- implicit-casting
- imports (JavaScript term: module imports)
- inheritance (JavaScript term: prototype inheritance)
- interpolation
- math-operators
- method-overloading
- mutation
- named-arguments
- modules
- module-exports
- module-imports
- module-dynamic-imports
- null-coalescing
- null-conditional
- nullability
- numbers
- objects (JavaScript term: instances, or object with prototype)
- optional-arguments (
- optional-parameters
- overflow
- parameters
- polymorphism (JavaScript term: duck-typing)
- properties
- randomness
- readonly-collections (deep immutability)
- regular-expressions (
RegExp.prototype
) - return-values
- scoping
- sets (
Set.prototype
,WeakSet.prototype
) - state
- string-formatting
- strings
- switch-statements
- throw-expressions
- time (
DateTime.prototype
) - type-conversion
- user-defined-exceptions
- variables
- while-loops
Essential Concepts
- anonymous-classes
- anonymous-functions
- async
- delegates (
Proxy.prototype
) - enumerables (
[Symbol.iterator]
) - events
- higher-order-functions
- indexers
- recursion
- serialization (
JSON.stringify
,FormData
) - statics
-
streams(node/web/dom API only) - yield (generators)
Advanced Concepts
- aysnc-iterators ([
Symbol.asyncIterator
]) - immutability
- immutable-collections
- multi-dimensional-array
Metadata
Metadata
Assignees
Labels
No labels