- Formally referred to as ECMAScript the standard are available at Standard ECMA-262: ECMAScript® 2018 Language Specification. Section 4, overview, presents a good summary, however, even this is aimed more at language implementers rather than application authors.
3 Grammar and Types
Grammar and types. Topics include:
- Case sensitive, Unicode,
- Variables, declarations, scope, global variables, hoisting, function hoisting, constants.
- Data types: Primitives- Boolean, null, undefined, Number, String, Symbol; Object.
- Type conversion, strings to numbers.
- Literals: Arrays, Boolean, Floating point, Integers, Object, RegExp, String.
4 Control flow and error handling
Control flow and error handling. Topics include:
- “;” as a statement separator, block statements
- Conditional statements, “falsey values”, Switch statements
- Exception handling statements, exception types, throw statement, try/catch statement.
- Promises (we’ll cover these a bit later in the course)
5 Loops and iteration
Loops and iteration. Topics include:
- for, do/while, and while statements
- break and continue statements
- for…in statement, for…of statement
Functions. Topics include:
- function declarations and expressions, primitives pass by value, objects pass by reference.
- function scope, nested functions and closures
- arguments object, parameters, default parameters, rest parameters.
- arrow functions, predefined functions
6.1 Dealing with
7 Expressions and Operators
Expressions and operators. Topics include:
- assignment, comparison, arithmetic, bitwise, logical, and string operators.
- conditional (ternary) operator, comma, unary (delete, typeof), relational operators (in, instanceof), operator precedence.
- Primary expressions (this, grouping, comprehensions), left hand-side expressions (new, super, spread)
8 Numbers and Dates
Numbers and dates. Topics include:
- decimal, binary, octal, hexadecimal, exponentiation (scientific notation)
- Number object: Lots of good stuff including min/max limits, NaN, machine epsilon,
- Methods of Number: parseFloat(), parseInt(), isFinite(), isInteger(), isNaN(), isSafeInteger()
- String conversion/formating: toExponential(), toFixed(), toPrecision().
- The Math object: here is where you will find all the functions!
- Date object
9 Text Formatting and Processing
Text formatting. Topics include:
- A survey of the very helpful string functions that you shouldn’t be re-writing!
- Multi-line template literals (new)
- Regular Expressions
10 Indexed and Keyed Collections
11.1 Working with Objects
Working with objects. Important! Topics include:
- Objects and properties, enumeration of properties
- Creating new objects: initializers, constructor function, Object.create()
- Inheritance, prototype, defining properties, defining methods
thisfor object references
11.3 Objects and Prototypes
12 Promises and Async/Await
setTimeout()function actually puts a message to the end of the event queue.
Promises, Async/await Tutorial. Note: Read through the async/await portion seemed pretty good.
Mastering Async Await in Node.js. Async and await are in Node.js 8.x.