js l1
admin
11月 14, 2020
0
Arrays
Array literals
Know several options how to create Array
Array length
Know how Array length property works
Closures Basics
Nested functions
Able to create nested functions
Understand variables visibility for nested scopes
ECMAScript Basics
cost, let declarations
Understand differences between [var], [let] and [const]
Know block scope and [let] visibility
Able to explain dead zone concept for [let]
Arrow functions
Know difference between arrow and usual functions
Able to discover cases for both arrow and usual functions using
Expressions, Operators, Statements
Operators
Know logic, mathematic operators
Know operators priority
Be able to use operators
Conditions
Know and able to use conditional statements
Loops
Know loop types
Understand loops differences and applicability
Be able to skip loop iteration or break loop
Functions
Function declaration/expression
Know both Function expression and Function declaration
Be able to explain declaration/expression differences
Objects
Object literals
Know several ways how to create object
Variables, Values, Data Types
Variables - Know how to declare variables
Values - Know how to assign values to variables
Literals - Know basic String, Number, Object, Array literals
Primitive Data Types
Discover primitive data types
Advanced Expressions
Hoisting
Understand hoisting concept
Able to use hoisting in development
Auto data type conversion
Know rules of auto data types conversion
Be able to discover cases of implicit data types conversion into boolean, string, number
Strict comparison
Be able to discover difference between strict and non-strict comparison
Be able to provide use cases of both types of comparison
Advanced Functions
arguments
Understand [arguments] and dynamic amount of parameters
Be able to use [arguments], retrieve additional parameters
[this] scope
Understand difference between function and method
Understand how [this] works, realize [this] possible issues
Manage [this] scope
Be able to replace [this] scope
Be able to use [call] and [apply] Function build-in methods
Arrays Built-in methods
Know how to copy array
Know how to copy array part
Know how to modify array
Arrays Iterating, Sorting, Filtering
Know how to sort Array
Be able to custom sorting for Array
Be able to filter Array elements
Know several method how to iterate Array elements
Closures Advanced
Context (lexical environment)
Understand function creation context (lexical environment)
Be able to explain difference between scope and context
Inner/outer lexical environment
Understand lexical environment traversing mechanism
Understand connection between function and lexical environment
Be able to discover cases where lexical environment required
Be able to create and use closures
ECMAScript Advanced
Promises
Know how [Promise] works
Know promise chain pattern
Be able to compare promise and callback patterns
Be able to handle errors in promises
Be able to use promisification pattern
Iterators
Know [Iterator] interface
Be able to create custom iterator
Generators
Know generator syntax
Be able to compare generator and iterator
Understand how [yield] works
Understand plain async code
Be able to handle errors in generators
ECMAScript Classes
Class declaration
Know [class] declaration syntax
Know how [class] declaration works under the hood
Understand difference between [class] and function constructor
Understand difference between method and [class] method
Be able to develop in OOP style using [class] declaration
[constructor] keyword
Inheritance
Know [extends] syntax and how it works
Getter/setter
Be able to create getter / setter [class] methods
ECMAScript Data Types & Expressions
Object [keys/values]
Object calculated props
[Symbol] data type
Know [Symbol] data type specific
Be able to explain difference between usual object key and symbol
[Set/Map] data types
[WeakSet/WeakMap] data types
Function default parameters
Discover default parameters concept and limitations
Spread operator for Function
Know how to use spread operator for Function arguments
Be able to compare [arguments] and spread operator
Spread operator for Array
Understand and able to use spread operator for Array concatenation
Destruction
Be able to discover destruction concept
Understand variables and Function arguments destruction
String templates
Know String template syntax and rules
[for..of] loop
Know how [for..of] loop works
Be able to compare [for..of] loop with other types of loops
Functional Inheritance
Rent a constructor
Know functional inheritance pattern
Be able to explain difference between functional and prototypal inheritance
Be able to discover benefits and drawback of both prototypal and functional inheritance
Mix-ins
Know mix-in pattern
Know mix-in specific and limitations
Able to explain benefits and drawbacks comparing with inheritance
Functional Patterns
Callback (Function as argument)
Know callback pattern
Understand callback limitations (callback hell)
Binding
Know how to bind [this] scope to function
Be able to provide cases when it’s required
Functional Scope
Know global scope and functional scope
Know variables visibility areas
Understand nested scopes and able work with them
Functions Parameters / Arguments
Know how to define Function parameters
Know difference between parameters passing by value and by reference
Know how to handle dynamic amount of Function parameters
JavaScript Errors
[try..catch] statement
Know how to handle errors
Throw errors
Custom errors
Object as Hash
Be able to use Object as a Hash
Be able to loop though Object keys
Object Oriented Programming
[new] keyword
Understand how [new] keyword works
Understand the difference in calling function with / without [new] keyword
Function constructor
Know function constructor concept
Know function constructor pattern
Able to create constructor functions
Public, private, static members
Know how to create public members
Know how to create private members
Know how to create static members
Understand OOP emulation patterns and conventions
Objects Built-in methods
Know how to use built-in methods
Know static Object methods
Prototypal Inheritance Basics
[proto] property
Understand [proto] object property
Understand how interpreter traverses object properties
Able to work with object [proto]
Able to use [Object.create] and define [proto] explicitly
Able to set / get object prototype
[prototype] property
Know function [prototype] property
Understand dependency between function constructor [prototype] and instance [proto]
Able to create ‘class’ methods using function [prototype] property
Regular Expressions Basics
String methods
Know String methods for regular expressions
RegExp methods and flags
Quantifiers
optional
Advanced Functional Patterns
Chaining
Know chaining pattern and cases where it will be useful
Currying
Know how to bind arguments to function
Memorization
Know memorization optimization
Understand problem with non-primitive arguments memorization
ECMAScript Classes Advanced
[super] keyword
Understand [super] reference
Able to use [super] reference (in constructor, in class methods)
[static] keyword
Know static members concept
Be able to create [class] static properties and methods
Functions Recursion
Know recursion concept and able to use it
Able to explain recursion risks, benefits and drawbacks
Object Property Descriptor
Know how to use property descriptors
Be able to explain enumerable, configurable, writable property attributes
Be able to create property getter/setter
Prototypal Inheritance Advanced
Temporary constructor
Know prototypal inheritance mechanism
Know prototypal inheritance temporary constructor pattern
Be able to explain prototypal chain from instance to its ‘class’ and ‘class’ parent
Be able to develop in OOP style using prototypal inheritance pattern
[instanceof] operator
Be able to use [instanceof] operator
Know how [instanceof] operator works
Regular Expressions Advanced
Ranges
Grouping
Greedy and lazy search
Replacements
Strict mode
Strict mode activation
Strict mode limitations
近期评论