The knowledge system
Nonsense not to say, spent 2 hours, finally finished, the following is the wide knowledge system, interested partners can refer to, 👏 welcome to check the lack of information, each other orli ~
Total feeling to learn far from enough, I hope you old iron everyone to give a suggestion, complement, or I which place to write wrong, please point out 🤝
This is the knowledge point that I can relate to at present, some did not write in, feel enough to eat a pot, I throw, welcome everyone to add 👏 knowledge point to continue pressure come over, debt more not pressure body ~
Need source file Xmind to my Github download, I did not have their own server, Baidu web disk is too lazy to do, so, download address portal: 👉 wide knowledge system PNG, wide knowledge system Xmind
I feel that there will be a public number to download Xmind, and then change a name into their own, and then make a public number, into the group to get a detailed front-end knowledge system, I want to say, you want to change, comment area to say some: “brother, I borrowed your xmind ha”, after all, I am very hard to sort out ok, say hello ha ~
Programming based
HTML
- SEO
- Inline elements/block-level elements
- Semantic understanding
CSS
- Range of new features
- Several ways to clear a float
- The box model
- Flex layout
- Landing the principle
- The position location
- Horizontal vertical in several ways
- Priority weight of the CSS
- The transition/animation
- Border: None /border: 0 Difference
- Display: None /visibility: hidden/opacity: 0 Difference
Javascript
-
Built-in objects
-
typeof
-
instanceof
-
Type conversion
-
new
-
this
-
closure
-
Prototypes and prototype chains
-
Execution context
-
Execution environment and scope
-
Depth copy
- Deep copy
- Shallow copy
-
Shake and throttling
- The principle of master
- Hands-on practice
-
modular
- CommonJS
- AMD
-
inheritance
- Prototype chain inheritance
- Inherit from the constructor
- Combination of inheritance
- Original type inheritance
- Parasitic inheritance
- Parasitic combinatorial inheritance
- ES6 Class inheritance
-
The call, the bind
- The principle of master
- How to implement a bind, call function
-
Let, const, var
-
Promise principle and implementation
-
Principle and implementation of Generator
-
Async/Await
-
Map, Set, FlatMap, and Reduce
-
Proxy
-
0.1 + 0.2! = = 0.3
Browser Basics
Event mechanism
- Events are triggered in three phases
- Register event
- Event delegate/event agent
Cross domain
-
JSONP
- Hands-on implementation of a JSONP
-
CORS
- Is there a difference between GET and POST
-
Nginx
- Extension load balancing knowledge
-
PostMessage
-
document.domain + iframe
storage
- Cookie, localStorage, seesionStorage, indexDB
- service worker
Event Loop
- Event Loop in Node
- Event Loop in the browser
Principles of Browser Rendering
-
The difference between Load and DOMContentLoaded
-
HTML Tree / CSS Tree
-
Reflux, redraw
-
How to reduce reflux redraw
- Which CSS properties will cause reflux redraw
SetTimeout and setInterval
Network based
Five layer protocol
- The application layer
- Transport layer
- The network layer
- Data link layer
- The physical layer
The PPP protocol
CSMA/CD protocol
ARP address resolution protocol
ICMP Internet Control packet protocol
UDP User datagram protocol
- unreliable
- For a message
- efficient
- transport
TCP Transmission control protocol
-
The first format
- The serial number
- Confirmation no.
- Data migration
- Confirm ACK
- Synchronous SYN
- Termination of the FIN
- window
-
The state machine
- Establish a link with three handshakes
- Disconnect the link with four waves
-
ARQ protocol
- Stop waiting for ARQ
- Continuous ARQ
- The cumulative confirmation
-
The sliding window
- Zero window
-
Congestion control
- Slow start algorithm
- Congestion avoidance algorithm
- The fast retransmission
- Fast recovery
The difference between UDP and TCP
HTTP
-
Common status code
- 2xx
- 3xx
- 4xx
- 5xx
-
HTTP header field
-
The difference between POST and GET
HTTPS
- TLS
- With hTTP difference
HTTP2.0
- Binary transmission
- multiplexing
- The Header compression
- The server Push
- QUIC
- Differences with HTTP1.0 and HTTP1.1
DNS
-
Can DNS be sent using TCP?
- The returned response exceeds 512 bytes
- Meet the condition: zone transfer
-
Regional transport
- Complete zone transfer
- Incremental region transfer
-
DNS Resolution Process
-
Mapping exists to the local host. The resolution ends
-
No mapping exists to the local host
-
Local DNS server
-
If the local DNS server has a cache, the resolution is complete
-
The local DNS server has no cache
- Iterative query
- Recursive query
-
-
-
-
Principle of DNS resolver
- Socket library parser
-
DDNS, NAT technology, Intranet penetration
-
CDN
-
DNS load balancing
-
How to prevent DNS hijacking
From the input URL to the page load
- DHCP Configures host information
- ARP resolves MAC addresses
- Domain name Resolution by DNS
- HTTP Request, TCP three handshakes and four waves
- Get the HTML document and enter the browser rendering principles process
Software development
Git
- remote
- Push, pull,
- Stash, rebase
- The merge, cherry
- Reflog, reset
xshell
Linux command
Nginx configuration
Host Modify configuration
The class library framework
Vue
-
Routing principle
-
State management
- Vuex principle and source core ideas
-
The core framework
-
VDOM
- Why do you need a virtual DOM
- Brief introduction and practice of virtual DOM algorithm
-
MVVM
- Dirty data detection
- The data was hijacked
- Contrast Proxy with Object.defineProperty
-
The life cycle
-
New Vue() instantiates
-
Initialize the init() function
-
Beforecatecreated Data observation
-
Created and beforeMounted, compile
-
parse
- The commands in the templae template are parsed regularly to generate an abstract AST syntax tree
-
optimise
- Mark static nodes, pacTH process, diff skip static nodes, and optimize patch performance
-
generate
- The AST syntax abstracts the process of converting a tree into a render Function () string
-
-
BeforeMount adds the $EL member to the vue instance object and replaces the Mounted DOM element
-
BeforeUpdated and updated. When data changes, the view is modified through the setter -> watcher -> Update process, and the difference is calculated through the patch mechanism and diff algorithm
-
BeforeDestory The hook function is called before the instance is destroyed.
-
-
NextTick principle
-
macrotasks
- setImmediate
- MessageChannel
- setTimeout
-
microtasks
- Promise
-
-
Principle of diff algorithm
-
Watch the principle
-
Computed is different from methods
-
React
-
State management
-
Redux
- Source code interpretation and programming art
- Why return a new store
-
Hox (Extended Understanding)
- Source code interpretation and design ideas
- With hooks, next generation React state management
-
react-redux
- Principle of the Provider
- Connect the principle
-
-
Related to understand
- What is middleware
- redux-thunk
- redux-saga
- redux-logger
-
The life cycle
- First apply colours to a drawing
- Update the stage
- Unloading phase
-
setState
-
Synthetic events
-
Hooks API principles
- useEffect
- UseState, useMemo
- UseCallback, useRef
-
Class components are different from stateless components
-
ShouldComponentUpdate internals
security
XSS
- How to attack
- How to defense
- CSP
CSRF
-
How to attack
-
How to defense
- SameSite
- Token
- Verify the Referer
Password security
- Add salt
The data structure
-
The stack
-
The queue
-
The list
-
The tree
-
The heap
algorithm
-
Time complexity
-
An operation
- The left < <
- Count right move >>
- Bitwise operations
The sorting
- Bubble sort
- Quick sort
- Selection sort
- Merge sort
- Heap sort
The list
- Reverse a unidirectional linked list
The tree
-
Binomial tree first order, order, order
-
In order traversal of the predecessor and successor nodes
-
The depth traversal of the tree
- DFS
- BFS
Dynamic programming
- Fibonacci series
- 0-1 Backpack problem
- Longest increasing subsequence
Common front-end design patterns
-
The singleton pattern
-
Publish and subscribe
-
The proxy pattern
-
The strategy pattern
-
Decorator pattern
-
Adapter mode
-
Chain of responsibility model
Performance optimization
Network related
-
The DNS resolution beforehand
-
The cache
- Strong cache
- Negotiate the cache
- Select an appropriate caching policy
-
HTTP2.0
-
preload
-
pre-rendered
Render process optimization
- Lazy loading
- Lazy to perform
File optimization
-
Image optimization
- Calculate image size (compression)
- Image loading optimization
-
Other file optimizations
-
CDN
other
- Webpack optimization project
- monitoring
Webpack
-
Different from grunt and gulp
-
According to the need to load
-
Principle of thermal renewal
-
How to configure the single page, multiple pages
-
Common Loader, what problems to solve
-
Common Plugins solve what problems
-
Build process, how to speed up the build
-
How to use WebPack for performance tuning
-
What is the difference between webpack-dev-server and nginx
Soft skills
-
Look at the basics and expand your knowledge
-
Learn some English and read English documents
-
Before doing things, drawing ideas and design
- Learn to draw flow charts, prototypes, etc
- Modular, generic components, etc., before doing, first think about it, do a review and design document
-
Make a list of daily Todos and stick to a daily and monthly paper
-
Reflect and organize
-
Contribution to the community
- Insist on one high-quality article output every month
- Visit communities and Github to actively raise Issues and Merge requests
-
A healthy body
- Work out twice a week
- Weekly basketball
The future extension
-
Micro front-end
-
TS
-
WebGL
-
WebAssembly
-
Multi-terminal (UMI-app/Taro/weex)