Previous words
If something is like magic, it means seeing the dawning of new things, and any technology that is advanced enough is no different from magic.
JavaScript, like Magic, is a vibrant, easy-to-use language and a language with many complex and subtle techniques. The paradox of JavaScript is that even experienced JavaScript developers don't really understand them if they don't study hard. Because JavaScript does not have to be understood, it is often difficult to really understand the language itself, which is the challenge we face. Not content with just letting the code work, but trying to figure out why, the path of the few who dare to challenge this rugged bump, embrace the entire javascript
Most of the complex libraries are based on JavaScript. In fact, front-end engineers largely refer to JavaScript engineers. Getting started with the front end is easy to master, and it's about JavaScript. If the mastery of HTML and CSS as access to the "front-end University" of the High school knowledge Reserve, then JavaScript is "front-end University" major courses, how to successfully open their front-end life after graduation, to see JavaScript knowledge is not deep, understanding is not thorough, So it's not too much time to spend on JavaScript.
Small matches the JavaScript knowledge system to comb and summarize, summarized into the following directory
ECMA Basic syntax
Infrastructure
Lexical structure
Variables and identifiers
Properties and variables
An expression
Strict mode
Garbage collection mechanism
Dynamic scripting
operator
An overview of operator syntax
Arithmetic operators
Relational operators
logical operators
Bitwise operators
conditions, commas, assignments, (), and void operators
Statement
Expression statements, block statements, empty statements, and declaration statements
Conditional statements, loop statements, and jump statements
Eval and with
Data type
Infrastructure
Review of 15 native object type systems
Primitive values and complex values
Wrapping Object
"Basic Type"
Undefined and null
Boolean Boolean type
Number numeric type
Math Object
string literal type
String String type properties and methods
"Constructor Type"
Regular expression base syntax
RegExp Regular Type
Array type
22 Methods of Array
Array replication
Method comparison of strings and arrays
Error handling mechanism
"Date Object"
Date and Time Basics
Date Day Object
Simple Calendar Implementation
Date linkage effect
"Type identification"
Four types of recognition methods
Array detection mode
"Type Conversion"
ToString ()
ValueOf ()
Data type conversions
function
Functions Overview
function parameters
Properties and methods of functions
ES6 function Extension
Advanced Techniques
Function-Type programming
Object
Objects of primary knowledge
Property manipulation of the object
Object's Property Descriptor
Object copy
Difficult point
"Scope"
Internal principle
Lexical scopes and dynamic scopes
Declaration elevation (hosting)
Block scope
A diagram to understand the execution environment and scope
"Closures"
What the hell are we closing the bag?
Looking at closures from the perspective of the execution environment
Iife
A common loop and closure error explanation
7 Types of closures
"This"
The 4 kinds of binding rules for this
This binding priority
Arrow functions
"Inheritance Implementation"
A graph to understand the triangular relationship between prototype, Proto and constructor
Constructors and prototype objects
5 Modes for creating objects
3 Ways to implement inheritance
Implementation of the tab of the inherited instance
Drag and drop of inherited instances
Modular
Implementing a modular organization under JavaScript
COMMONJS Specification and Node module implementation
Using Browserify to implement COMMONJS browser loading
AMD and Requirejs
R.js Packaging
CMD and Seajs
DOM node
"Node Type"
Overview of node types
ELEMENT node
Attribute node
Text node
Note node and document type node
Document node
Document fragment Node
"Get Node"
Element Selector
Getelementsbyclassname
Selector Selector
Dynamic collections
"Node Actions"
Node relationships
Node operations
Node content
Node traversal
Node scope
Distinguishing element attributes from object properties
Scripted CSS
Scripted inline styles
Query calculation style
Scripting CSS Classes
Scripted style Sheets
Dynamic styles
Scripting Pseudo-elements
Element size
Offsets offset
Client area Client
Scrolling scroll
Back to Top
Element View method
Event
"Event mechanism"
Event Flow
Event handlers
Event Object
Event Simulation
"Event Type"
Mouse events
Keyboard events
Change events
Clipboard events
Text Events
Load Events
Focus Management
Animation and Motion
Animation
Native drag and drop
Analog drag
Magnetic adsorption
Collision detection
Drag to change element size
Simulate scroll bars
Movement
Uniform motion
Variable motion
Curve motion
Jitter
Cushioning motion and elastic motion
Throwing and trajectories
Mouse Follow motion
WALL-Bumping movement
Collision Motion
Time Version Movement
Use of Velocity.js
Canvas
Canvas basic syntax
Canvas graphics processing and advanced usage
Canvas Drawing
Canvas image editing
Canvas Adaptive Round Clock
Canvas particle clock
Canvas dynamic ball overlap effect
Canvas Searchlight Effect
Ajax
Infrastructure
Json
XHR Object
Request method
Response decoding
FormData
Progress events
Header information
Passing JSON
Form submission
Ajax in jquery
"Cross-Domain"
CORS
Picture Ping
JSONP
Store
Cookies
IE UserData
Web Storage
Bom
Timer
SetTimeout () and SetInterval ()
Requestanimationframe ()
Timer Applications (clocks, countdown, stopwatch and alarms)
The Window property
dialog box
Window operations
Location Object
History Object
Screen Object
Navigator object and user agent detection
Capability Testing
HTML5
Web timing mechanism
Web Worker
Binary arrays
Blob
File files
Network-related
Url
BASE64 Encoder
JavaScript Learning Directory