-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
34 lines (32 loc) · 92.8 KB
/
index.html
File metadata and controls
34 lines (32 loc) · 92.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>HookAll - 互联网开发文档 | HookAll</title>
<meta name="description" content="HookAll - 互联网开发文档">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.CHFsYRlE.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.BmaY4put.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.Cj59DtCS.js">
<link rel="modulepreload" href="/assets/chunks/framework.CMLuPXeo.js">
<link rel="modulepreload" href="/assets/index.md.C_XyFhoR.lean.js">
<link rel="icon" href="/logo.svg">
<meta name="theme-color" content="#3c8772">
<meta property="og:url" content="https://hookall.pages.dev/">
<meta property="og:type" content="website">
<meta property="og:title" content="HookAll">
<meta property="og:description" content="HookAll - 互联网开发文档">
<meta property="og:image" content="https://hookall.pages.dev/logo.svg">
<script>(function(e,r,t,i,a,n,s){e[t]=e[t]||function(){(e[t].q=e[t].q||[]).push(arguments)},n=r.createElement(i),n.async=1,n.src="https://www.clarity.ms/tag/"+a,s=r.getElementsByTagName(i)[0],s.parentNode.insertBefore(n,s)})(window,document,"clarity","script","tqgjzzg3pl");</script>
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
</head>
<body>
<div id="app"><div class="VPApp" data-v-bdc9e4dd><!--[--><span tabindex="-1" data-v-253bc703></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-253bc703>直接跳到内容</a><!--]--><!----><!--[--><!--]--><header class="VPNav nav-bar stick" data-v-bdc9e4dd data-v-d3f4e1f2><div class="VPNavBar" data-v-d3f4e1f2 data-v-1f286e4c><div class="container" data-v-1f286e4c><a class="VPNavBarTitle" href="/" data-v-1f286e4c data-v-b886668e><!--[--><!--[--><!--[--><!--[--><!--[--><svg class="logo" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" data-v-56c444e4><line x1="2" y1="2" x2="18" y2="2" stroke="#42d392" stroke-width="2" stroke-linecap="round" data-v-56c444e4></line><line x1="2" y1="9" x2="9" y2="9" stroke="#2d8cff" stroke-width="0.5" stroke-linecap="round" data-v-56c444e4></line><line x1="2" y1="18" x2="14" y2="18" stroke="#2d8cff" stroke-width="0.5" stroke-linecap="round" data-v-56c444e4></line></svg><span class="text" data-v-56c444e4>HookAll</span><!--]--><!--]--><!--]--><!--]--><!--]--></a><div class="content" data-v-1f286e4c><!----><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-1f286e4c data-v-909c5905><span id="main-nav-aria-label" class="visually-hidden" data-v-909c5905>主导航</span><!--[--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">基础 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/basic/necessary/internet.html"><!--[-->必备<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/html/intro.html"><!--[-->html<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/css/basic.html"><!--[-->css<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/javascript/basic/introduction.html"><!--[-->javascript<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/es6/intro.html"><!--[-->es6<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/typescript/intro.html"><!--[-->typescript<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/git/intro.html"><!--[-->git<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/dom/intro.html"><!--[-->DOM<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/bom/engine.html"><!--[-->BOM<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/node/intro.html"><!--[-->node<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/basic/algorithm/intro.html"><!--[-->算法<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">框架 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/framework/react/intro.html"><!--[-->React<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/vue/intro.html"><!--[-->Vue<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/nextjs/start.html"><!--[-->nextjs<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/umijs/start.html"><!--[-->umijs<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/nuxtjs/start.html"><!--[-->nuxtjs<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/vue2/intro.html"><!--[-->Vue 2 (EOL)<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/framework/angular/start.html"><!--[-->Angular<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">工程化 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/intro.html"><!--[-->概述<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/package-manager/npm.html"><!--[-->包管理<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/architecture/module.html"><!--[-->架构<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/build/vite.html"><!--[-->构建工具<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/coding/rule.html"><!--[-->代码质量<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/performance/why.html"><!--[-->性能优化<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/seo/basic.html"><!--[-->SEO<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/engineering/accessible/intro.html"><!--[-->无障碍<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">全栈 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/full-stack/network/http.html"><!--[-->网络基础<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/full-stack/framework/node.html"><!--[-->node 后端<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/full-stack/serverless/intro.html"><!--[-->Serverless<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/full-stack/database/intro.html"><!--[-->数据库<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/full-stack/operation/linux.html"><!--[-->运维<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">Web 3D <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/basic/basic.html"><!--[-->基础<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/theory/principle.html"><!--[-->核心原理<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/webgl/basic.html"><!--[-->WebGL<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/webgpu/start.html"><!--[-->WebGPU<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/threejs/basic.html"><!--[-->three.js<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/webxr/basic.html"><!--[-->WebXR<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/web-3d/performance/rendering.html"><!--[-->性能优化<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">专项 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/special/mobile/basic/intro.html"><!--[-->移动端<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/special/electron/intro.html"><!--[-->Electron<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/special/cli/intro.html"><!--[-->命令行开发<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/special/security/intro.html"><!--[-->Web 安全<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="vt-flyout VPNavBarMenuGroup" data-v-909c5905 data-v-0fad18bb><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false"><!--[--><span class="vt-flyout-button-text">前沿 <!----><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-text-icon"><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><div class="vt-menu-items"><!--[--><!--[--><a class="vt-link link vt-menu-link" href="/leading/webassembly/basic.html"><!--[-->WebAssembly<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/leading/ai-web/intro.html"><!--[-->AI & Web<!--]--><!----><!----></a><!--]--><!--[--><a class="vt-link link vt-menu-link" href="/leading/web3/intro.html"><!--[-->Web3<!--]--><!----><!----></a><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--><!----></nav><div class="VPNavBarAppearance appearance" data-v-1f286e4c data-v-cab51a30><button class="vt-switch vt-switch-appearance" type="button" role="switch" aria-label="切换深色模式" aria-checked="false" data-v-cab51a30><span class="vt-switch-check"><span class="vt-switch-icon"><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-switch-appearance-sun"><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-switch-appearance-moon"><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="vt-social-links VPNavBarSocialLinks social-links" data-v-1f286e4c data-v-481df3e1><!--[--><a class="vt-social-link is-small" href="https://github.com/fengyon/blog" title="github" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-social-link-icon"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg><span class="visually-hidden">github</span></a><!--]--></div><div class="vt-flyout VPNavBarExtra extra" data-v-1f286e4c data-v-99812400><button type="button" class="vt-flyout-button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation"><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-flyout-button-icon"><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg><!--]--></button><div class="vt-flyout-menu"><div class="vt-menu"><!----><!--[--><!--[--><div class="vt-menu-group" data-v-99812400><div class="vt-menu-item item" data-v-99812400><p class="vt-menu-label" data-v-99812400>外观</p><div class="vt-menu-action action" data-v-99812400><button class="vt-switch vt-switch-appearance" type="button" role="switch" aria-label="切换深色模式" aria-checked="false" data-v-99812400><span class="vt-switch-check"><span class="vt-switch-icon"><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-switch-appearance-sun"><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-switch-appearance-moon"><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="vt-menu-group" data-v-99812400><div class="vt-menu-item item" data-v-99812400><div class="vt-social-links social-links" data-v-99812400><!--[--><a class="vt-social-link is-small" href="https://github.com/fengyon/blog" title="github" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="vt-social-link-icon"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg><span class="visually-hidden">github</span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><button type="button" class="vt-hamburger VPNavBarHamburger hamburger" aria-label="移动版导航" aria-expanded="false" aria-controls="VPNavScreen" data-v-1f286e4c data-v-4d1904bd><span class="vt-hamburger-container"><span class="vt-hamburger-top"></span><span class="vt-hamburger-middle"></span><span class="vt-hamburger-bottom"></span></span></button></div></div></div><!----></header><!----><!----><div id="VPContent" class="VPContent" data-v-bdc9e4dd data-v-b3f4c16a><div class="VPContentPage" data-v-b3f4c16a><main><div style="position:relative;"><div><div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? View /llms.txt for optimized Markdown documentation, or /llms-full.txt for full documentation bundle</div><!--[--><section id="hero" data-v-70941a1a><img id="uwu" alt="HookAll Logo by @fengyon" data-v-70941a1a><h1 class="tagline" data-v-70941a1a><span class="accent" data-v-70941a1a>互联网</span><br data-v-70941a1a>开发文档 </h1><p class="description" data-v-70941a1a> 丰富,高质量,开源的 Web 开发文档。 </p><p class="actions" data-v-70941a1a><a class="get-started" href="/basic/necessary/internet.html" data-v-70941a1a> 开始御览 <svg class="icon" xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" data-v-70941a1a><path d="M13.025 1l-2.847 2.828 6.176 6.176h-16.354v3.992h16.354l-6.176 6.176 2.847 2.828 10.975-11z" data-v-70941a1a></path></svg></a></p></section><section id="highlights" class="vt-box-container" data-v-70941a1a><div class="vt-box" data-v-70941a1a><h2 data-v-70941a1a>丰富</h2><p data-v-70941a1a> 涵盖javascript、html、css等基础技术,框架、构建、工程化等应用技术,运维、测试等扩展技术。 </p></div><div class="vt-box" data-v-70941a1a><h2 data-v-70941a1a>高质量</h2><p data-v-70941a1a>聚焦技术核心,追求通俗易懂,外链技术细节</p></div><div class="vt-box" data-v-70941a1a><h2 data-v-70941a1a>开源</h2><p data-v-70941a1a> 网站源于开源,所有内容采用知识共享 4.0 许可证,与维基百科相同。 网站的源代码托管于 <a href="https://github.com/fengyon/blog" target="_blank" data-v-70941a1a> Github </a></p></div></section><section id="sitemap" data-v-70941a1a><div class="container"><!--[--><div class="sitemap-col"><h4>基础</h4><ul><!--[--><li><a class="vt-link link" href="/basic/necessary/internet"><!--[-->必备<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/html/intro"><!--[-->html<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/css/basic"><!--[-->css<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/javascript/basic/introduction"><!--[-->javascript<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/es6/intro"><!--[-->es6<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/typescript/intro"><!--[-->typescript<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/git/intro"><!--[-->git<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/dom/intro"><!--[-->DOM<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/bom/engine"><!--[-->BOM<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/node/intro"><!--[-->node<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/basic/algorithm/intro"><!--[-->算法<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>框架</h4><ul><!--[--><li><a class="vt-link link" href="/framework/react/intro"><!--[-->React<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/vue/intro"><!--[-->Vue<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/nextjs/start"><!--[-->nextjs<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/umijs/start"><!--[-->umijs<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/nuxtjs/start"><!--[-->nuxtjs<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/vue2/intro"><!--[-->Vue 2 (EOL)<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/framework/angular/start"><!--[-->Angular<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>工程化</h4><ul><!--[--><li><a class="vt-link link" href="/engineering/intro"><!--[-->概述<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/package-manager/npm"><!--[-->包管理<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/architecture/module"><!--[-->架构<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/build/vite"><!--[-->构建工具<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/coding/rule"><!--[-->代码质量<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/performance/why"><!--[-->性能优化<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/seo/basic"><!--[-->SEO<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/engineering/accessible/intro"><!--[-->无障碍<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>全栈</h4><ul><!--[--><li><a class="vt-link link" href="/full-stack/network/http"><!--[-->网络基础<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/full-stack/framework/node"><!--[-->node 后端<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/full-stack/serverless/intro"><!--[-->Serverless<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/full-stack/database/intro"><!--[-->数据库<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/full-stack/operation/linux"><!--[-->运维<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>Web 3D</h4><ul><!--[--><li><a class="vt-link link" href="/web-3d/basic/basic"><!--[-->基础<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/theory/principle"><!--[-->核心原理<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/webgl/basic"><!--[-->WebGL<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/webgpu/start"><!--[-->WebGPU<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/threejs/basic"><!--[-->three.js<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/webxr/basic"><!--[-->WebXR<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/web-3d/performance/rendering"><!--[-->性能优化<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>专项</h4><ul><!--[--><li><a class="vt-link link" href="/special/mobile/basic/intro"><!--[-->移动端<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/special/electron/intro"><!--[-->Electron<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/special/cli/intro"><!--[-->命令行开发<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/special/security/intro"><!--[-->Web 安全<!--]--><!----><!----></a></li><!--]--></ul></div><div class="sitemap-col"><h4>前沿</h4><ul><!--[--><li><a class="vt-link link" href="/leading/webassembly/basic"><!--[-->WebAssembly<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/leading/ai-web/intro"><!--[-->AI & Web<!--]--><!----><!----></a></li><li><a class="vt-link link" href="/leading/web3/intro"><!--[-->Web3<!--]--><!----><!----></a></li><!--]--></ul></div><!--]--></div></section><!--]--></div></div></main><!--[--><!--]--><div class="VPFooter" data-v-e7286416><p class="license" data-v-e7286416><a class="vt-link link link" href="https://github.com/fengyon/blog/LICENSE" target="_blank" rel="noopener noreferrer" data-v-e7286416><!--[-->版权声明<!--]--><!----><!----></a></p><p class="copyright" data-v-e7286416>本网站的文档采用 CC BY-SA 4.0 (署名—相同方式共享 4.0 协议国际版) 进行许可,图片版权属于图片的作者。</p></div><!--[--><!--]--></div></div><div class="visually-hidden" aria-live="polite" data-v-bdc9e4dd>HookAll - 互联网开发文档已经加载完毕</div></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"basic_algorithm_advanced_approximation.md\":\"BPGsgKbJ\",\"basic_algorithm_advanced_cryptography.md\":\"DX8SMDG1\",\"basic_algorithm_advanced_machine-learning.md\":\"B9Q8LoB7\",\"basic_algorithm_advanced_randomized.md\":\"Deehg4k8\",\"basic_algorithm_backtracking.md\":\"B925MfKo\",\"basic_algorithm_complexity.md\":\"xxNWllL-\",\"basic_algorithm_data-struct.md\":\"CExHmd4G\",\"basic_algorithm_divide-conquer.md\":\"CoaOwYpS\",\"basic_algorithm_dp.md\":\"Cf-oftYt\",\"basic_algorithm_graph.md\":\"DHeNOHej\",\"basic_algorithm_greedy.md\":\"DJWVpW5z\",\"basic_algorithm_intro.md\":\"DizAwr4t\",\"basic_algorithm_performance-tools.md\":\"DTCuDhlj\",\"basic_algorithm_practice-platforms.md\":\"ucv0sbt9\",\"basic_algorithm_searching.md\":\"UsV23Uzi\",\"basic_algorithm_sorting.md\":\"CAdcorfJ\",\"basic_algorithm_string.md\":\"BNBo0R1s\",\"basic_algorithm_visualization.md\":\"mcWgslIR\",\"basic_bom_arraybuffer.md\":\"Dig-xrEY\",\"basic_bom_canvas.md\":\"Cyuryztc\",\"basic_bom_clipboard.md\":\"BjjYo-ZO\",\"basic_bom_cookie.md\":\"Bnhx1Yd9\",\"basic_bom_cors.md\":\"BPCX1gDD\",\"basic_bom_engine.md\":\"55OTzwzu\",\"basic_bom_fetch.md\":\"BxAkg8wF\",\"basic_bom_file.md\":\"BvMhq3hq\",\"basic_bom_fontface.md\":\"BqS7W62F\",\"basic_bom_form.md\":\"CPz-Zo8x\",\"basic_bom_formdata.md\":\"TO3MIrSS\",\"basic_bom_geolocation.md\":\"FZJaf1DS\",\"basic_bom_headers.md\":\"BFep7W-J\",\"basic_bom_history.md\":\"Ds-DkPpB\",\"basic_bom_indexeddb.md\":\"DRbUhG9Q\",\"basic_bom_intersectionobserver.md\":\"Bdq-H9xo\",\"basic_bom_intl-relativetimeformat.md\":\"Bl3EWOat\",\"basic_bom_intl-segmenter.md\":\"qdOrS2Qx\",\"basic_bom_location.md\":\"CQo3jyER\",\"basic_bom_navigator.md\":\"enkYWnJM\",\"basic_bom_offline.md\":\"CPrG7ZX4\",\"basic_bom_page-lifecycle.md\":\"231P-RJt\",\"basic_bom_page-visibility.md\":\"DJGSVV1k\",\"basic_bom_pointer-lock.md\":\"DYNDAFPQ\",\"basic_bom_postmessage.md\":\"Dg0JpAh4\",\"basic_bom_request.md\":\"nL48X4xd\",\"basic_bom_response.md\":\"DgMIjqW4\",\"basic_bom_same-origin.md\":\"B19cvP5H\",\"basic_bom_server-sent-events.md\":\"eHZeHjXi\",\"basic_bom_service-worker.md\":\"nvA8HTa2\",\"basic_bom_storage.md\":\"D6kSMbXS\",\"basic_bom_svg.md\":\"BOXCHqgc\",\"basic_bom_url.md\":\"DbAQEpOu\",\"basic_bom_urlpattern.md\":\"p9uOxQ6Z\",\"basic_bom_urlsearchparams.md\":\"BO3rlCA4\",\"basic_bom_web-share-api.md\":\"Jgh1a6qS\",\"basic_bom_webaudio.md\":\"CqvrY0pM\",\"basic_bom_webcomponents.md\":\"dRnaunI7\",\"basic_bom_websocket.md\":\"B8uUn1Zm\",\"basic_bom_webworker.md\":\"n25MovEz\",\"basic_bom_window.md\":\"DZ1ulgtC\",\"basic_bom_xmlhttprequest.md\":\"DizVco5p\",\"basic_css_animation.md\":\"DYaJ4hYL\",\"basic_css_basic.md\":\"CB455RSA\",\"basic_css_box-model.md\":\"CgSe2s51\",\"basic_css_layout.md\":\"BstJjCP_\",\"basic_css_selector.md\":\"Q3UgMgEP\",\"basic_css_transform-3d.md\":\"RNfNaiqj\",\"basic_dom_attributes.md\":\"CACtlp3G\",\"basic_dom_css.md\":\"BBdF7UDl\",\"basic_dom_document.md\":\"1QGt-sVz\",\"basic_dom_element.md\":\"D3vjLzvY\",\"basic_dom_elements_a.md\":\"vRyGesJu\",\"basic_dom_elements_button.md\":\"BRARNhio\",\"basic_dom_elements_form.md\":\"DDE-mKbj\",\"basic_dom_elements_image.md\":\"gDemhFuL\",\"basic_dom_elements_input.md\":\"MO2u-i1M\",\"basic_dom_elements_option.md\":\"CNNsUHNP\",\"basic_dom_elements_video.md\":\"CoV-rB-t\",\"basic_dom_events_common.md\":\"C5k733BF\",\"basic_dom_events_drag.md\":\"s3x0Auqw\",\"basic_dom_events_event.md\":\"BZkV6dCC\",\"basic_dom_events_eventtarget.md\":\"Bh0pjATr\",\"basic_dom_events_form.md\":\"Bc9iA_p8\",\"basic_dom_events_globaleventhandlers.md\":\"CBSl36QO\",\"basic_dom_events_keyboard.md\":\"B8GUGCwf\",\"basic_dom_events_model.md\":\"lWyKluue\",\"basic_dom_events_mouse.md\":\"CHm1hGNB\",\"basic_dom_events_progress.md\":\"BWUn381t\",\"basic_dom_events_touch.md\":\"WgtTOT4S\",\"basic_dom_general.md\":\"D0LlW2La\",\"basic_dom_intro.md\":\"C0RCUMmH\",\"basic_dom_mutationobserver.md\":\"Ck8xI-ce\",\"basic_dom_node.md\":\"X7u4pGkf\",\"basic_dom_nodelist.md\":\"C8ewEgJX\",\"basic_dom_operation.md\":\"DzbwMYlf\",\"basic_dom_parentnode.md\":\"DspOkI7I\",\"basic_dom_text.md\":\"B6yQatyI\",\"basic_es6_array.md\":\"zj-dtslh\",\"basic_es6_arraybuffer.md\":\"DYLxkQQA\",\"basic_es6_async-iterator.md\":\"CzhNnX6l\",\"basic_es6_async.md\":\"bmEtQdsZ\",\"basic_es6_class-extends.md\":\"CGSj2g6P\",\"basic_es6_class.md\":\"H1i6L6u6\",\"basic_es6_decorator.md\":\"C_aD7P7i\",\"basic_es6_destructuring.md\":\"XUWKVeqi\",\"basic_es6_fp.md\":\"BPjGMm0Q\",\"basic_es6_function.md\":\"eSIjtbdQ\",\"basic_es6_generator-async.md\":\"DfCeTbtj\",\"basic_es6_generator.md\":\"CdrKq-Y1\",\"basic_es6_intro.md\":\"Dg5KSgZk\",\"basic_es6_iterator.md\":\"wp5XP1CN\",\"basic_es6_let.md\":\"C752wIOc\",\"basic_es6_mixin.md\":\"BqyYq1BN\",\"basic_es6_module-loader.md\":\"D42qCEqs\",\"basic_es6_module.md\":\"J8-OUHuV\",\"basic_es6_number.md\":\"B-IbQNmt\",\"basic_es6_object-methods.md\":\"DjKl3Kgl\",\"basic_es6_object.md\":\"Wk6NAgmY\",\"basic_es6_operator.md\":\"D9mvsmSi\",\"basic_es6_promise.md\":\"cG4HR9NV\",\"basic_es6_proposals.md\":\"DOBoXsN2\",\"basic_es6_proxy.md\":\"Cv-kBnUF\",\"basic_es6_reflect.md\":\"L4skUnjn\",\"basic_es6_regex.md\":\"CDApI4LU\",\"basic_es6_set-map.md\":\"BSiQQGxS\",\"basic_es6_simd.md\":\"CyOnXayG\",\"basic_es6_spec.md\":\"DmMMk2RK\",\"basic_es6_string-methods.md\":\"oDtlAC-5\",\"basic_es6_string.md\":\"1a2D6R9P\",\"basic_es6_style.md\":\"DiHW1bgA\",\"basic_es6_symbol.md\":\"Ce8vt-q5\",\"basic_git_advanced.md\":\"Cyu_XBf7\",\"basic_git_branch.md\":\"t8CnlSfh\",\"basic_git_hooks.md\":\"YqJGxZmf\",\"basic_git_install.md\":\"Bn6er0DA\",\"basic_git_intro.md\":\"CHJcQ1xS\",\"basic_git_repository.md\":\"BIu5D_3_\",\"basic_git_tag.md\":\"DdGiZRQC\",\"basic_git_workflow.md\":\"DXH29K4Q\",\"basic_html_a.md\":\"DeNLt87h\",\"basic_html_attribute.md\":\"C8GcD7Cc\",\"basic_html_elements.md\":\"DXK9tysw\",\"basic_html_encode.md\":\"DOAD4hgJ\",\"basic_html_form.md\":\"Cot74-UD\",\"basic_html_iframe.md\":\"CRiek1Vw\",\"basic_html_image.md\":\"CHQ_q2c8\",\"basic_html_intro.md\":\"BsPX_LOx\",\"basic_html_link.md\":\"D8Rmaw30\",\"basic_html_list.md\":\"D9b2hvQY\",\"basic_html_mobile.md\":\"BIwKN7D7\",\"basic_html_multimedia.md\":\"CCph6nYd\",\"basic_html_script.md\":\"BbGlBQbJ\",\"basic_html_semantic.md\":\"BiO6tF3I\",\"basic_html_table.md\":\"ByWxYewR\",\"basic_html_text.md\":\"DO8805Cv\",\"basic_html_url.md\":\"3_dcZvQK\",\"basic_javascript_async_general.md\":\"ihk-k4sq\",\"basic_javascript_async_promise.md\":\"DEBGO-wp\",\"basic_javascript_async_timer.md\":\"BXVIfFhT\",\"basic_javascript_basic_grammar.md\":\"BaMkdrIM\",\"basic_javascript_basic_history.md\":\"B5tOvDny\",\"basic_javascript_basic_introduction.md\":\"wchEfKxd\",\"basic_javascript_features_console.md\":\"CL7JhM_o\",\"basic_javascript_features_conversion.md\":\"xJdQTJDt\",\"basic_javascript_features_error.md\":\"DY_C_mHv\",\"basic_javascript_features_style.md\":\"D4OMnaZl\",\"basic_javascript_oop_new.md\":\"DZsAlC_S\",\"basic_javascript_oop_object.md\":\"BWaaqyGW\",\"basic_javascript_oop_prototype.md\":\"BoEk5qsR\",\"basic_javascript_oop_strict.md\":\"Dh83Zjtc\",\"basic_javascript_oop_this.md\":\"Ba5tpmWq\",\"basic_javascript_operators_arithmetic.md\":\"DVRpScnr\",\"basic_javascript_operators_bit.md\":\"kAcMBsH0\",\"basic_javascript_operators_boolean.md\":\"DOGZXtU5\",\"basic_javascript_operators_comparison.md\":\"CwbsBDES\",\"basic_javascript_operators_priority.md\":\"TDtdqyef\",\"basic_javascript_stdlib_array.md\":\"Bed0Ev1G\",\"basic_javascript_stdlib_attributes.md\":\"B2hbUGCa\",\"basic_javascript_stdlib_boolean.md\":\"CELaAbur\",\"basic_javascript_stdlib_date.md\":\"B2kwkII7\",\"basic_javascript_stdlib_json.md\":\"CYC4jySy\",\"basic_javascript_stdlib_math.md\":\"B7XDvXZK\",\"basic_javascript_stdlib_number.md\":\"De3qTRTw\",\"basic_javascript_stdlib_object.md\":\"DFWMDoKm\",\"basic_javascript_stdlib_regexp.md\":\"CZOyi0Xh\",\"basic_javascript_stdlib_string.md\":\"BXjjNcBa\",\"basic_javascript_stdlib_wrapper.md\":\"DYvMlle7\",\"basic_javascript_types_array.md\":\"BYwXQJdG\",\"basic_javascript_types_function.md\":\"eo3AhEts\",\"basic_javascript_types_general.md\":\"C4tw7iM-\",\"basic_javascript_types_null-undefined-boolean.md\":\"g6QgrL_L\",\"basic_javascript_types_number.md\":\"ibLvoQ3F\",\"basic_javascript_types_object.md\":\"D95ex8rP\",\"basic_javascript_types_string.md\":\"CYNR5iGc\",\"basic_necessary_ai.md\":\"s68APLeW\",\"basic_necessary_internet.md\":\"D-Lr-yAy\",\"basic_necessary_searching.md\":\"D42zhLF6\",\"basic_node_event-loop.md\":\"BlYQ_m1-\",\"basic_node_installation.md\":\"KdZ3zAdk\",\"basic_node_intro.md\":\"H_VdiJU3\",\"basic_node_modules.md\":\"Cb3HjQKh\",\"basic_node_npm.md\":\"IKnNGgB-\",\"basic_node_vars.md\":\"B0S4G16h\",\"basic_typescript_any.md\":\"Cjp6HXgU\",\"basic_typescript_array.md\":\"tiHBDF3Z\",\"basic_typescript_assert.md\":\"3m4QwFIb\",\"basic_typescript_basic.md\":\"BhGOBQh9\",\"basic_typescript_class.md\":\"BMimYhWN\",\"basic_typescript_comment.md\":\"I6eB90Eg\",\"basic_typescript_d-ts.md\":\"D2an5c6u\",\"basic_typescript_declare.md\":\"uKDjb9BC\",\"basic_typescript_decorator-legacy.md\":\"aKPeB5mh\",\"basic_typescript_decorator.md\":\"xx3Cz66e\",\"basic_typescript_enum.md\":\"C9j_dBok\",\"basic_typescript_es6.md\":\"Cp5s8OPe\",\"basic_typescript_function.md\":\"DFN6I3jd\",\"basic_typescript_generics.md\":\"CMy-YnLw\",\"basic_typescript_interface.md\":\"CpfSDUj5\",\"basic_typescript_intro.md\":\"CmXHcofg\",\"basic_typescript_mapping.md\":\"DYUEkCBy\",\"basic_typescript_module.md\":\"DNzL46mD\",\"basic_typescript_namespace.md\":\"B8IoQiOf\",\"basic_typescript_narrowing.md\":\"BB-GrlWn\",\"basic_typescript_npm.md\":\"DaTLe6f1\",\"basic_typescript_object.md\":\"BcGefWgA\",\"basic_typescript_operator.md\":\"CfqL6vdi\",\"basic_typescript_react.md\":\"Br48aQH7\",\"basic_typescript_symbol.md\":\"C8iqXqic\",\"basic_typescript_tsc.md\":\"CgM1G8Tw\",\"basic_typescript_tsconfig-json.md\":\"DmpsWpAu\",\"basic_typescript_tuple.md\":\"BrlDSLuv\",\"basic_typescript_type-operations.md\":\"-OLQ-Leh\",\"basic_typescript_types.md\":\"VmDybK5K\",\"basic_typescript_utility.md\":\"BvgWhvWG\",\"engineering_accessible_aria.md\":\"D2CwI6ja\",\"engineering_accessible_autotest.md\":\"DtJ3jYk-\",\"engineering_accessible_color-contrast.md\":\"Chpb3j8m\",\"engineering_accessible_framework.md\":\"Bx_5Ws9Q\",\"engineering_accessible_html.md\":\"CPF1JQk7\",\"engineering_accessible_intro.md\":\"B2Idhtl0\",\"engineering_accessible_keyboard.md\":\"eqEAtkLZ\",\"engineering_accessible_test.md\":\"CR-nuc-t\",\"engineering_architecture_diretory.md\":\"CSNvFpl-\",\"engineering_architecture_micro-frontend.md\":\"Bfczfsod\",\"engineering_architecture_module.md\":\"xR_hVHMY\",\"engineering_architecture_monorep.md\":\"B-XQLl_H\",\"engineering_build_esbuild.md\":\"C2UOuBtQ\",\"engineering_build_rollup.md\":\"C3Tjjv5y\",\"engineering_build_vite.md\":\"L3l3Izr0\",\"engineering_build_webpack.md\":\"D3UYA0Lz\",\"engineering_coding_push.md\":\"BjI-tNmn\",\"engineering_coding_rule.md\":\"CyfNqKO4\",\"engineering_coding_style.md\":\"BNyzaa-1\",\"engineering_coding_test.md\":\"CUQOZa_z\",\"engineering_intro.md\":\"DvBRMKe1\",\"engineering_monitor.md\":\"DZF50-yK\",\"engineering_package-manager_npm.md\":\"DZFoN76L\",\"engineering_package-manager_pnpm.md\":\"KiRRbE-T\",\"engineering_package-manager_yarn.md\":\"Kab1ezh0\",\"engineering_performance.md\":\"DxuSsk2o\",\"engineering_performance_bundling.md\":\"BL65UCA7\",\"engineering_performance_core-metrics.md\":\"BxZaKxrc\",\"engineering_performance_framework.md\":\"CBHN2Mx-\",\"engineering_performance_javascript.md\":\"CATX0CWY\",\"engineering_performance_monitor.md\":\"BNJHloED\",\"engineering_performance_monitoring.md\":\"IYGsdzzd\",\"engineering_performance_network.md\":\"wXy5WaLp\",\"engineering_performance_rendering.md\":\"vBfYkTs2\",\"engineering_performance_resources.md\":\"6hA4qO02\",\"engineering_performance_tooling.md\":\"C2hc7GI_\",\"engineering_performance_why.md\":\"rsUNsoZV\",\"engineering_security.md\":\"dNXNARcX\",\"engineering_seo_analytics.md\":\"CzrsYOrr\",\"engineering_seo_basic.md\":\"CqWsdJJa\",\"engineering_seo_content-strategy.md\":\"xBPTf4IJ\",\"engineering_seo_for-ai.md\":\"Dh8JOln8\",\"engineering_seo_for-baidu.md\":\"C_-8_p3v\",\"engineering_seo_for-google.md\":\"BX4E3I4j\",\"engineering_seo_future.md\":\"BwrDpdy3\",\"engineering_seo_index-crawl.md\":\"Kzmv_jl7\",\"engineering_seo_keyword-research.md\":\"CHWI5MUa\",\"engineering_seo_off-page.md\":\"Q4okIQzP\",\"engineering_seo_renderer.md\":\"Byc6t9nh\",\"engineering_seo_resources.md\":\"Bn2ke6qz\",\"engineering_seo_web-struct.md\":\"Cv2qDPXb\",\"framework_angular_form.md\":\"CK_rnzVd\",\"framework_angular_framework.md\":\"BES5yvWS\",\"framework_angular_http.md\":\"DJtI528m\",\"framework_angular_pipe.md\":\"CkhzekAO\",\"framework_angular_router.md\":\"CbsWd38W\",\"framework_angular_rxjs.md\":\"DE9KMov7\",\"framework_angular_services.md\":\"CrqDF0Np\",\"framework_angular_signal.md\":\"BikhqqQr\",\"framework_angular_start.md\":\"D38NHGaR\",\"framework_angular_status.md\":\"DOJ8Onn5\",\"framework_angular_tempalte.md\":\"_YMi1kCb\",\"framework_nextjs_data-fetching.md\":\"DSyndhwH\",\"framework_nextjs_ecosystem.md\":\"CIDqkVQJ\",\"framework_nextjs_middleware.md\":\"DiHl9_7b\",\"framework_nextjs_rendering.md\":\"CIQVzJLW\",\"framework_nextjs_router.md\":\"BkekxDK3\",\"framework_nextjs_start.md\":\"mAFA9--j\",\"framework_nextjs_status.md\":\"D2h1blLy\",\"framework_nuxtjs_api.md\":\"DQyyTXKZ\",\"framework_nuxtjs_data-fetching.md\":\"Dx34PQ9z\",\"framework_nuxtjs_middleware.md\":\"2jSaxvqV\",\"framework_nuxtjs_plugins.md\":\"DmLCOBbD\",\"framework_nuxtjs_rendering.md\":\"CIEI7avl\",\"framework_nuxtjs_router.md\":\"CtXhn5E3\",\"framework_nuxtjs_start.md\":\"DHUid8XT\",\"framework_nuxtjs_status.md\":\"DN4PVlsL\",\"framework_react_compiler.md\":\"CXQUM9y6\",\"framework_react_component.md\":\"BDRO0GHx\",\"framework_react_concurrent.md\":\"HdHSmAf_\",\"framework_react_css.md\":\"qXmn5KBk\",\"framework_react_fiber.md\":\"D30N556K\",\"framework_react_hooks.md\":\"DBtLxUGY\",\"framework_react_intro.md\":\"BsTQr5KE\",\"framework_react_jsx.md\":\"BL3sla29\",\"framework_react_managing-state.md\":\"9qnSnv0A\",\"framework_react_router.md\":\"CBB-jznl\",\"framework_react_tsx.md\":\"CmXpHDPw\",\"framework_react_ui.md\":\"DKHZVAeK\",\"framework_umijs_build.md\":\"D1SgH3e1\",\"framework_umijs_mock.md\":\"CgkELvA1\",\"framework_umijs_plugins.md\":\"In4jUbwE\",\"framework_umijs_router.md\":\"CHsYoJ7I\",\"framework_umijs_start.md\":\"gB0e-8Np\",\"framework_umijs_status.md\":\"VlOHTWOp\",\"framework_vue2_basic.md\":\"c4-DH_Ot\",\"framework_vue2_component.md\":\"C2sguXmx\",\"framework_vue2_directives.md\":\"BQpQn3S1\",\"framework_vue2_internal-component.md\":\"CBrV3OvV\",\"framework_vue2_intro.md\":\"DJ7quQcc\",\"framework_vue2_lifecycle.md\":\"CjFGk9b8\",\"framework_vue2_option-api.md\":\"MccWce78\",\"framework_vue2_reactive.md\":\"jdPLakIM\",\"framework_vue2_slots.md\":\"BGc8qamA\",\"framework_vue2_state.md\":\"BI5wAMTB\",\"framework_vue_async.md\":\"BQIqDD1B\",\"framework_vue_basic.md\":\"C--5pYm0\",\"framework_vue_component.md\":\"DufYrmPL\",\"framework_vue_composition-api.md\":\"BwDUkPZK\",\"framework_vue_directives.md\":\"w19GNPuc\",\"framework_vue_dynamic-component.md\":\"DK-1Mdip\",\"framework_vue_internal-component.md\":\"X8Og_Mnp\",\"framework_vue_intro.md\":\"Dum0XJtE\",\"framework_vue_lifecycle.md\":\"C6afE5s2\",\"framework_vue_reactive.md\":\"J39aTaX8\",\"framework_vue_slots.md\":\"UxAuVwiT\",\"framework_vue_state.md\":\"r4a5fgIM\",\"framework_vue_ts.md\":\"6VZjMghW\",\"full-stack_database_intro.md\":\"PIlUCO5y\",\"full-stack_database_mongodb.md\":\"VCRJ_T-4\",\"full-stack_database_mysql.md\":\"C3TEoH31\",\"full-stack_database_postgresql.md\":\"DAQLxR31\",\"full-stack_database_redis.md\":\"K6XWkrmm\",\"full-stack_framework_express.md\":\"C7xQejvu\",\"full-stack_framework_koa.md\":\"DL_Z2LZJ\",\"full-stack_framework_nestjs.md\":\"CLTGWIyO\",\"full-stack_framework_node.md\":\"Dy6SGX5M\",\"full-stack_network_http.md\":\"MsJZitx7\",\"full-stack_network_https.md\":\"D3PERn85\",\"full-stack_network_tcp-ip.md\":\"BND1IQ1L\",\"full-stack_network_udp.md\":\"C7vK6fzJ\",\"full-stack_network_websocket.md\":\"DCXtzhnp\",\"full-stack_network_wireshark.md\":\"D1R4xNYT\",\"full-stack_operation_ci-cd.md\":\"xRJzp3lr\",\"full-stack_operation_docker.md\":\"CjpU7Cub\",\"full-stack_operation_kubernetes.md\":\"DKFwKTJr\",\"full-stack_operation_linux.md\":\"Ce8sH6X3\",\"full-stack_operation_monitor.md\":\"DhNkiQUx\",\"full-stack_operation_security.md\":\"WUVp38qc\",\"full-stack_serverless_architecture.md\":\"-VArPudy\",\"full-stack_serverless_functions.md\":\"VBFTeZFG\",\"full-stack_serverless_intro.md\":\"CGDunbFN\",\"index.md\":\"C_XyFhoR\",\"leading_ai-web_api.md\":\"WpoQGOYd\",\"leading_ai-web_chat.md\":\"ugxX8MM7\",\"leading_ai-web_ecosystem.md\":\"DG_w6eT4\",\"leading_ai-web_interaction.md\":\"Nnpv6AAX\",\"leading_ai-web_intro.md\":\"CyLOQ4jn\",\"leading_ai-web_onnx.md\":\"CTVXLPcE\",\"leading_ai-web_principle.md\":\"B0GMZxBv\",\"leading_ai-web_prompt.md\":\"DXKKkDxY\",\"leading_ai-web_run-in-browser.md\":\"DoSg2xlm\",\"leading_ai-web_tensorflow.md\":\"BMCt26e8\",\"leading_ai-web_transformers.md\":\"D2_TqYh0\",\"leading_web3_blockchain.md\":\"ylQuDgpY\",\"leading_web3_chain-net.md\":\"C9hbgO-Z\",\"leading_web3_consensus.md\":\"Bq62YEzL\",\"leading_web3_cross-chain.md\":\"BFAJ3EbJ\",\"leading_web3_crypto-basics.md\":\"CX1wkhNU\",\"leading_web3_crypto-wallets.md\":\"CfoRdyZp\",\"leading_web3_dao.md\":\"FuVtYylP\",\"leading_web3_dapp-development.md\":\"BSgT7Su7\",\"leading_web3_decentralized-storage.md\":\"DbJyKTWG\",\"leading_web3_defi.md\":\"DHbFpyrT\",\"leading_web3_ethers.md\":\"Clo9Wv6Z\",\"leading_web3_frontend-basic.md\":\"BZAfogmV\",\"leading_web3_future-outlook.md\":\"GBuQAZb9\",\"leading_web3_intro.md\":\"CDKBecXB\",\"leading_web3_modular-blockchain.md\":\"D37TurkX\",\"leading_web3_nft.md\":\"D7WyCGgI\",\"leading_web3_security-audit.md\":\"yGm-0dP-\",\"leading_web3_security.md\":\"KAPxwIf6\",\"leading_web3_smart-contracts.md\":\"CDKnujhT\",\"leading_web3_wagmi-viem.md\":\"BHTsZwaq\",\"leading_web3_zero-knowledge-proofs.md\":\"0MXfdtn_\",\"leading_web3_zk-layer2.md\":\"DyB4Iz0v\",\"leading_webassembly_basic.md\":\"CxwXA1WX\",\"leading_webassembly_component-model.md\":\"DT5g_Xbn\",\"leading_webassembly_design-philosophy.md\":\"CbT-Lpx7\",\"leading_webassembly_future.md\":\"DVqBgNaa\",\"leading_webassembly_gc-proposal.md\":\"CBdgkrKB\",\"leading_webassembly_js-interaction.md\":\"Bja5477t\",\"leading_webassembly_linear-memory.md\":\"9akEgUdE\",\"leading_webassembly_module-structure.md\":\"BYCcteEq\",\"leading_webassembly_other-languages.md\":\"DL6nkjjX\",\"leading_webassembly_server-side.md\":\"Bdo5CdU8\",\"leading_webassembly_stack-vm-and-instructions.md\":\"CPxBu1jr\",\"leading_webassembly_start.md\":\"D5TpMBYe\",\"leading_webassembly_threads-simd-exceptions.md\":\"D9n6e2wQ\",\"leading_webassembly_toolchain.md\":\"BWIK7MYa\",\"leading_webassembly_wasi.md\":\"CzeRYVSI\",\"leading_webassembly_wasm-rust.md\":\"DPKCcAFW\",\"mobile_basic.md\":\"MHsEUrsd\",\"operations_linux_intro.md\":\"Cj6666CX\",\"special_cli_args.md\":\"DNC1esG0\",\"special_cli_build.md\":\"eVnmHrE2\",\"special_cli_config.md\":\"Bq7-k7Sp\",\"special_cli_cross-platform.md\":\"CqjzDnEt\",\"special_cli_input.md\":\"BzzFKPo5\",\"special_cli_intro.md\":\"lEG5z5Z0\",\"special_cli_log.md\":\"BuD449Pe\",\"special_cli_output.md\":\"CAuqLH1r\",\"special_cli_progress.md\":\"BKLMRn0h\",\"special_cli_publish.md\":\"CGmnTe1V\",\"special_cli_run.md\":\"qB0r8C_x\",\"special_cli_test.md\":\"D33M8Ass\",\"special_electron_browser-window.md\":\"H7nRJJmQ\",\"special_electron_build.md\":\"Dy3UACvq\",\"special_electron_debug.md\":\"WHmqbrD_\",\"special_electron_electron-vite.md\":\"BcUcn9Gq\",\"special_electron_hardware.md\":\"Bwd-UZZ3\",\"special_electron_intro.md\":\"Cdd9cSzi\",\"special_electron_ipc.md\":\"-ZD_Ve9f\",\"special_electron_log.md\":\"CZ7IA1oj\",\"special_electron_main-process.md\":\"BjKgWTzx\",\"special_electron_native.md\":\"DWEg-P5A\",\"special_electron_node-integration.md\":\"BHIQQvAB\",\"special_electron_performance.md\":\"DVELg8Dz\",\"special_electron_process-model.md\":\"EjVuBRSn\",\"special_electron_publish.md\":\"D5tQsDM5\",\"special_electron_renderer-process.md\":\"C7eYjvXT\",\"special_electron_scripts.md\":\"DcShV2Gx\",\"special_electron_security.md\":\"BBP7zfKS\",\"special_electron_start.md\":\"DGbMr497\",\"special_electron_system.md\":\"6qGIa6we\",\"special_electron_ui-framework.md\":\"CRWNoBs3\",\"special_electron_wasm.md\":\"DepT40i4\",\"special_mobile_applet_alipay.md\":\"1pG6HRej\",\"special_mobile_applet_cross-platform.md\":\"BW2imtH0\",\"special_mobile_applet_wechat.md\":\"DjMAerZ9\",\"special_mobile_basic_intro.md\":\"C6Ut4LG_\",\"special_mobile_basic_touch-events.md\":\"DjojyOsW\",\"special_mobile_basic_viewport.md\":\"D4kSqJAt\",\"special_mobile_framework_flutter.md\":\"1-D1K9S9\",\"special_mobile_framework_react-native.md\":\"92rizGBw\",\"special_mobile_framework_weex.md\":\"Cg7pvXd_\",\"special_mobile_publish_debug.md\":\"D9AN1MdH\",\"special_mobile_publish_hot-update.md\":\"DMnrk9f0\",\"special_mobile_publish_publish.md\":\"BS5Np3Ho\",\"special_mobile_web_hybrid.md\":\"CUmMgHEs\",\"special_mobile_web_pwa.md\":\"Bm8UU4qB\",\"special_mobile_web_responsive.md\":\"DeV542GX\",\"special_security_api-security.md\":\"B60ycAcE\",\"special_security_attacks.md\":\"DzseZ_sH\",\"special_security_authority.md\":\"CpcozSAl\",\"special_security_backend.md\":\"DyYBhd-Y\",\"special_security_browser-model.md\":\"D-nmQCWB\",\"special_security_cloud-iam.md\":\"I4uuChcH\",\"special_security_ddos.md\":\"E6Mv4c1k\",\"special_security_intro.md\":\"Dtuk9c6c\",\"special_security_log-analysis.md\":\"DcUrIQ39\",\"special_security_owasp-top10.md\":\"WPdS_GN8\",\"special_security_pentest.md\":\"GCRbFyx5\",\"special_security_scanning.md\":\"CpTfFLyT\",\"special_security_sourcemap.md\":\"D-1D6uLk\",\"special_security_tools.md\":\"CViotqYT\",\"special_security_waf.md\":\"DcjxL9ao\",\"web-3d_basic_basic.md\":\"Cb_KQwth\",\"web-3d_basic_coordinate-system.md\":\"DKAj9qN6\",\"web-3d_basic_transform.md\":\"K3U4GGtd\",\"web-3d_performance_loading.md\":\"CRB_b0Zo\",\"web-3d_performance_memory.md\":\"W7nFc37U\",\"web-3d_performance_rendering.md\":\"C-jBxEer\",\"web-3d_theory_lighting.md\":\"BsBfNmeI\",\"web-3d_theory_principle.md\":\"BbnSBcBm\",\"web-3d_theory_shaders.md\":\"C6PQfL9U\",\"web-3d_threejs_animation.md\":\"cltoGt3c\",\"web-3d_threejs_basic.md\":\"CWrBAsz9\",\"web-3d_threejs_geometry-material.md\":\"nNjzLemS\",\"web-3d_threejs_scene-camera.md\":\"DbJLd9md\",\"web-3d_webgl_basic.md\":\"BpYhPRg_\",\"web-3d_webgl_buffers.md\":\"CHXVkiVu\",\"web-3d_webgl_textures.md\":\"B4RS5rQp\",\"web-3d_webgpu_api.md\":\"66JZyxGf\",\"web-3d_webgpu_compute.md\":\"DIWws65-\",\"web-3d_webgpu_mechanism.md\":\"DxAwk6b5\",\"web-3d_webgpu_pipeline.md\":\"CfY6qD48\",\"web-3d_webgpu_start.md\":\"ffmNtE8j\",\"web-3d_webgpu_toolchain.md\":\"BbcJsZxh\",\"web-3d_webxr_ar.md\":\"BvUp9Azk\",\"web-3d_webxr_basic.md\":\"FOANcNl4\",\"web-3d_webxr_vr.md\":\"DEwZL6k2\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"HookAll\",\"description\":\"HookAll - 互联网开发文档\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"基础\",\"activeMatch\":\"^/basic/\",\"items\":[{\"text\":\"必备\",\"link\":\"/basic/necessary/internet\"},{\"text\":\"html\",\"link\":\"/basic/html/intro\"},{\"text\":\"css\",\"link\":\"/basic/css/basic\"},{\"text\":\"javascript\",\"link\":\"/basic/javascript/basic/introduction\"},{\"text\":\"es6\",\"link\":\"/basic/es6/intro\"},{\"text\":\"typescript\",\"link\":\"/basic/typescript/intro\"},{\"text\":\"git\",\"link\":\"/basic/git/intro\"},{\"text\":\"DOM\",\"link\":\"/basic/dom/intro\"},{\"text\":\"BOM\",\"link\":\"/basic/bom/engine\"},{\"text\":\"node\",\"link\":\"/basic/node/intro\"},{\"text\":\"算法\",\"link\":\"/basic/algorithm/intro\"}]},{\"text\":\"框架\",\"activeMatch\":\"^/framework/\",\"items\":[{\"text\":\"React\",\"link\":\"/framework/react/intro\"},{\"text\":\"Vue\",\"link\":\"/framework/vue/intro\"},{\"text\":\"nextjs\",\"link\":\"/framework/nextjs/start\"},{\"text\":\"umijs\",\"link\":\"/framework/umijs/start\"},{\"text\":\"nuxtjs\",\"link\":\"/framework/nuxtjs/start\"},{\"text\":\"Vue 2 (EOL)\",\"link\":\"/framework/vue2/intro\"},{\"text\":\"Angular\",\"link\":\"/framework/angular/start\"}]},{\"text\":\"工程化\",\"activeMatch\":\"^/engineering/\",\"items\":[{\"text\":\"概述\",\"link\":\"/engineering/intro\"},{\"text\":\"包管理\",\"link\":\"/engineering/package-manager/npm\"},{\"text\":\"架构\",\"link\":\"/engineering/architecture/module\"},{\"text\":\"构建工具\",\"link\":\"/engineering/build/vite\"},{\"text\":\"代码质量\",\"link\":\"/engineering/coding/rule\"},{\"text\":\"性能优化\",\"link\":\"/engineering/performance/why\"},{\"text\":\"SEO\",\"link\":\"/engineering/seo/basic\"},{\"text\":\"无障碍\",\"link\":\"/engineering/accessible/intro\"}]},{\"text\":\"全栈\",\"activeMatch\":\"^/full-stack/\",\"items\":[{\"text\":\"网络基础\",\"link\":\"/full-stack/network/http\"},{\"text\":\"node 后端\",\"link\":\"/full-stack/framework/node\"},{\"text\":\"Serverless\",\"link\":\"/full-stack/serverless/intro\"},{\"text\":\"数据库\",\"link\":\"/full-stack/database/intro\"},{\"text\":\"运维\",\"link\":\"/full-stack/operation/linux\"}]},{\"text\":\"Web 3D\",\"activeMatch\":\"^/web-3d/\",\"items\":[{\"text\":\"基础\",\"link\":\"/web-3d/basic/basic\"},{\"text\":\"核心原理\",\"link\":\"/web-3d/theory/principle\"},{\"text\":\"WebGL\",\"link\":\"/web-3d/webgl/basic\"},{\"text\":\"WebGPU\",\"link\":\"/web-3d/webgpu/start\"},{\"text\":\"three.js\",\"link\":\"/web-3d/threejs/basic\"},{\"text\":\"WebXR\",\"link\":\"/web-3d/webxr/basic\"},{\"text\":\"性能优化\",\"link\":\"/web-3d/performance/rendering\"}]},{\"text\":\"专项\",\"activeMatch\":\"^/special/\",\"items\":[{\"text\":\"移动端\",\"link\":\"/special/mobile/basic/intro\"},{\"text\":\"Electron\",\"link\":\"/special/electron/intro\"},{\"text\":\"命令行开发\",\"link\":\"/special/cli/intro\"},{\"text\":\"Web 安全\",\"link\":\"/special/security/intro\"}]},{\"text\":\"前沿\",\"activeMatch\":\"^/leading/\",\"items\":[{\"text\":\"WebAssembly\",\"link\":\"/leading/webassembly/basic\"},{\"text\":\"AI & Web\",\"link\":\"/leading/ai-web/intro\"},{\"text\":\"Web3\",\"link\":\"/leading/web3/intro\"}]}],\"sidebar\":{\"/basic/\":[{\"text\":\"必备\",\"items\":[{\"text\":\"科学上网\",\"link\":\"/basic/necessary/internet\"},{\"text\":\"搜索\",\"link\":\"/basic/necessary/searching\"},{\"text\":\"AI\",\"link\":\"/basic/necessary/ai\"}]},{\"text\":\"html\",\"items\":[{\"text\":\"HTML 语言简介\",\"link\":\"/basic/html/intro\"},{\"text\":\"URL 简介\",\"link\":\"/basic/html/url\"},{\"text\":\"网页元素的属性\",\"link\":\"/basic/html/attribute\"},{\"text\":\"HTML 字符编码\",\"link\":\"/basic/html/encode\"},{\"text\":\"网页的语义结构\",\"link\":\"/basic/html/semantic\"},{\"text\":\"文本标签\",\"link\":\"/basic/html/text\"},{\"text\":\"列表标签\",\"link\":\"/basic/html/list\"},{\"text\":\"图像标签\",\"link\":\"/basic/html/image\"},{\"text\":\"<a>\",\"link\":\"/basic/html/a\"},{\"text\":\"<link>\",\"link\":\"/basic/html/link\"},{\"text\":\"<script>,<noscript>\",\"link\":\"/basic/html/script\"},{\"text\":\"多媒体标签\",\"link\":\"/basic/html/multimedia\"},{\"text\":\"iframe\",\"link\":\"/basic/html/iframe\"},{\"text\":\"表格标签\",\"link\":\"/basic/html/table\"},{\"text\":\"表单标签\",\"link\":\"/basic/html/form\"},{\"text\":\"移动设备网页设计\",\"link\":\"/basic/html/mobile\"},{\"text\":\"其他标签\",\"link\":\"/basic/html/elements\"}]},{\"text\":\"css\",\"items\":[{\"text\":\"css 基础\",\"link\":\"/basic/css/basic\"},{\"text\":\"css 选择器\",\"link\":\"/basic/css/selector\"},{\"text\":\"css 盒模型\",\"link\":\"/basic/css/box-model\"},{\"text\":\"布局与响应式\",\"link\":\"/basic/css/layout\"},{\"text\":\"css 动画\",\"link\":\"/basic/css/animation\"},{\"text\":\"Transform 3D\",\"link\":\"/basic/css/transform-3d\"}]},{\"text\":\"javascript\",\"items\":[{\"text\":\"导论\",\"link\":\"/basic/javascript/basic/introduction\"},{\"text\":\"JavaScript 语言的历史\",\"link\":\"/basic/javascript/basic/history\"},{\"text\":\"JavaScript 的基本语法\",\"link\":\"/basic/javascript/basic/grammar\"},{\"text\":\"数据类型概述\",\"link\":\"/basic/javascript/types/general\"},{\"text\":\"null, undefined 和布尔值\",\"link\":\"/basic/javascript/types/null-undefined-boolean\"},{\"text\":\"数值\",\"link\":\"/basic/javascript/types/number\"},{\"text\":\"字符串\",\"link\":\"/basic/javascript/types/string\"},{\"text\":\"对象\",\"link\":\"/basic/javascript/types/object\"},{\"text\":\"函数\",\"link\":\"/basic/javascript/types/function\"},{\"text\":\"数组\",\"link\":\"/basic/javascript/types/array\"},{\"text\":\"算术运算符\",\"link\":\"/basic/javascript/operators/arithmetic\"},{\"text\":\"比较运算符\",\"link\":\"/basic/javascript/operators/comparison\"},{\"text\":\"布尔运算符\",\"link\":\"/basic/javascript/operators/boolean\"},{\"text\":\"二进制位运算符\",\"link\":\"/basic/javascript/operators/bit\"},{\"text\":\"其他运算符,运算顺序\",\"link\":\"/basic/javascript/operators/priority\"},{\"text\":\"数据类型的转换\",\"link\":\"/basic/javascript/features/conversion\"},{\"text\":\"错误处理机制\",\"link\":\"/basic/javascript/features/error\"},{\"text\":\"编程风格\",\"link\":\"/basic/javascript/features/style\"},{\"text\":\"console 对象与控制台\",\"link\":\"/basic/javascript/features/console\"},{\"text\":\"Object 对象\",\"link\":\"/basic/javascript/stdlib/object\"},{\"text\":\"属性描述对象\",\"link\":\"/basic/javascript/stdlib/attributes\"},{\"text\":\"Array 对象\",\"link\":\"/basic/javascript/stdlib/array\"},{\"text\":\"包装对象\",\"link\":\"/basic/javascript/stdlib/wrapper\"},{\"text\":\"Boolean 对象\",\"link\":\"/basic/javascript/stdlib/boolean\"},{\"text\":\"Number 对象\",\"link\":\"/basic/javascript/stdlib/number\"},{\"text\":\"String 对象\",\"link\":\"/basic/javascript/stdlib/string\"},{\"text\":\"Math 对象\",\"link\":\"/basic/javascript/stdlib/math\"},{\"text\":\"Date 对象\",\"link\":\"/basic/javascript/stdlib/date\"},{\"text\":\"RegExp 对象\",\"link\":\"/basic/javascript/stdlib/regexp\"},{\"text\":\"JSON 对象\",\"link\":\"/basic/javascript/stdlib/json\"},{\"text\":\"实例对象与 new 命令\",\"link\":\"/basic/javascript/oop/new\"},{\"text\":\"this 关键字\",\"link\":\"/basic/javascript/oop/this\"},{\"text\":\"对象的继承\",\"link\":\"/basic/javascript/oop/prototype\"},{\"text\":\"Object 对象的相关方法\",\"link\":\"/basic/javascript/oop/object\"},{\"text\":\"严格模式\",\"link\":\"/basic/javascript/oop/strict\"},{\"text\":\"异步操作概述\",\"link\":\"/basic/javascript/async/general\"},{\"text\":\"定时器\",\"link\":\"/basic/javascript/async/timer\"},{\"text\":\"Promise 对象\",\"link\":\"/basic/javascript/async/promise\"}]},{\"text\":\"es6\",\"items\":[{\"text\":\"ECMAScript 6 简介\",\"link\":\"/basic/es6/intro\"},{\"text\":\"let 和 const 命令\",\"link\":\"/basic/es6/let\"},{\"text\":\"变量的解构赋值\",\"link\":\"/basic/es6/destructuring\"},{\"text\":\"字符串的扩展\",\"link\":\"/basic/es6/string\"},{\"text\":\"字符串的新增方法\",\"link\":\"/basic/es6/string-methods\"},{\"text\":\"正则的扩展\",\"link\":\"/basic/es6/regex\"},{\"text\":\"数值的扩展\",\"link\":\"/basic/es6/number\"},{\"text\":\"函数的扩展\",\"link\":\"/basic/es6/function\"},{\"text\":\"数组的扩展\",\"link\":\"/basic/es6/array\"},{\"text\":\"对象的扩展\",\"link\":\"/basic/es6/object\"},{\"text\":\"对象的新增方法\",\"link\":\"/basic/es6/object-methods\"},{\"text\":\"运算符的扩展\",\"link\":\"/basic/es6/operator\"},{\"text\":\"Symbol\",\"link\":\"/basic/es6/symbol\"},{\"text\":\"Set 和 Map 数据结构\",\"link\":\"/basic/es6/set-map\"},{\"text\":\"Proxy\",\"link\":\"/basic/es6/proxy\"},{\"text\":\"Reflect\",\"link\":\"/basic/es6/reflect\"},{\"text\":\"Promise 对象\",\"link\":\"/basic/es6/promise\"},{\"text\":\"Iterator 和 for...of 循环\",\"link\":\"/basic/es6/iterator\"},{\"text\":\"Generator 函数的语法\",\"link\":\"/basic/es6/generator\"},{\"text\":\"Generator 函数的异步应用\",\"link\":\"/basic/es6/generator-async\"},{\"text\":\"async 函数\",\"link\":\"/basic/es6/async\"},{\"text\":\"函数式编程\",\"link\":\"/basic/es6/fp\"},{\"text\":\"Class 的基本语法\",\"link\":\"/basic/es6/class\"},{\"text\":\"Class 的继承\",\"link\":\"/basic/es6/class-extends\"},{\"text\":\"Mixin\",\"link\":\"/basic/es6/mixin\"},{\"text\":\"Module 的语法\",\"link\":\"/basic/es6/module\"},{\"text\":\"Module 的加载实现\",\"link\":\"/basic/es6/module-loader\"},{\"text\":\"编程风格\",\"link\":\"/basic/es6/style\"},{\"text\":\"读懂 ECMAScript 规格\",\"link\":\"/basic/es6/spec\"},{\"text\":\"异步遍历器\",\"link\":\"/basic/es6/async-iterator\"},{\"text\":\"ArrayBuffer\",\"link\":\"/basic/es6/arraybuffer\"},{\"text\":\"最新提案\",\"link\":\"/basic/es6/proposals\"},{\"text\":\"SIMD\",\"link\":\"/basic/es6/simd\"},{\"text\":\"装饰器\",\"link\":\"/basic/es6/decorator\"}]},{\"text\":\"typescript\",\"items\":[{\"link\":\"/basic/typescript/intro\",\"text\":\"TypeScript 语言简介\"},{\"text\":\"TypeScript 基本用法\",\"link\":\"/basic/typescript/basic\"},{\"text\":\"any 类型,unknown 类型,never 类型\",\"link\":\"/basic/typescript/any\"},{\"text\":\"TypeScript 的类型系统\",\"link\":\"/basic/typescript/types\"},{\"link\":\"/basic/typescript/array\",\"text\":\"TypeScript 的数组类型\"},{\"text\":\"TypeScript 的元组类型\",\"link\":\"/basic/typescript/tuple\"},{\"text\":\"TypeScript 的 symbol 类型\",\"link\":\"/basic/typescript/symbol\"},{\"link\":\"/basic/typescript/function\",\"text\":\"TypeScript 的函数类型\"},{\"link\":\"/basic/typescript/object\",\"text\":\"TypeScript 的对象类型\"},{\"text\":\"TypeScript 的 interface 接口\",\"link\":\"/basic/typescript/interface\"},{\"link\":\"/basic/typescript/class\",\"text\":\"TypeScript 的 class 类型\"},{\"link\":\"/basic/typescript/generics\",\"text\":\"TypeScript 泛型\"},{\"link\":\"/basic/typescript/enum\",\"text\":\"TypeScript 的 Enum 类型\"},{\"text\":\"TypeScript 的类型断言\",\"link\":\"/basic/typescript/assert\"},{\"text\":\"TypeScript 项目使用 npm 模块\",\"link\":\"/basic/typescript/npm\"},{\"link\":\"/basic/typescript/namespace\",\"text\":\"TypeScript namespace\"},{\"text\":\"TypeScript 装饰器\",\"link\":\"/basic/typescript/decorator\"},{\"text\":\"装饰器(旧语法)\",\"link\":\"/basic/typescript/decorator-legacy\"},{\"text\":\"declare 关键字\",\"link\":\"/basic/typescript/declare\"},{\"link\":\"/basic/typescript/d-ts\",\"text\":\"d.ts 类型声明文件\"},{\"text\":\"类型运算\",\"link\":\"/basic/typescript/type-operations\"},{\"link\":\"/basic/typescript/mapping\",\"text\":\"TypeScript 的类型映射\"},{\"link\":\"/basic/typescript/utility\",\"text\":\"TypeScript 类型工具\"},{\"text\":\"TypeScript 的 React 支持\",\"link\":\"/basic/typescript/react\"},{\"text\":\"TypeScript 的注释指令\",\"link\":\"/basic/typescript/comment\"},{\"link\":\"/basic/typescript/tsconfig-json\",\"text\":\"tsconfig.json\"},{\"link\":\"/basic/typescript/tsc\",\"text\":\"tsc 命令行编译器\"},{\"link\":\"/basic/typescript/operator\",\"text\":\"TypeScript 类型运算符\"},{\"text\":\"TypeScript 类型缩小\",\"link\":\"/basic/typescript/narrowing\"},{\"link\":\"/basic/typescript/module\",\"text\":\"TypeScript 模块\"},{\"text\":\"TypeScript 的 ES6 类型\",\"link\":\"/basic/typescript/es6\"}]},{\"text\":\"git\",\"items\":[{\"text\":\"Git 简介\",\"link\":\"/basic/git/intro\"},{\"text\":\"Git 安装与配置\",\"link\":\"/basic/git/install\"},{\"text\":\"Git 仓库管理\",\"link\":\"/basic/git/repository\"},{\"text\":\"Git 分支管理\",\"link\":\"/basic/git/branch\"},{\"text\":\"Git 标签管理\",\"link\":\"/basic/git/tag\"},{\"text\":\"Git 工作流\",\"link\":\"/basic/git/workflow\"},{\"text\":\"Git Hooks\",\"link\":\"/basic/git/hooks\"},{\"text\":\"Git 高级技巧\",\"link\":\"/basic/git/advanced\"}]},{\"text\":\"DOM\",\"items\":[{\"text\":\"DOM 介绍\",\"link\":\"/basic/dom/intro\"},{\"text\":\"Node 接口\",\"link\":\"/basic/dom/node\"},{\"text\":\"NodeList 接口,HTMLCollection 接口\",\"link\":\"/basic/dom/nodelist\"},{\"text\":\"ParentNode 接口,ChildNode 接口\",\"link\":\"/basic/dom/parentnode\"},{\"text\":\"Document 节点\",\"link\":\"/basic/dom/document\"},{\"text\":\"Element 节点\",\"link\":\"/basic/dom/element\"},{\"text\":\"属性的操作\",\"link\":\"/basic/dom/attributes\"},{\"text\":\"Text 节点和 DocumentFragment 节点\",\"link\":\"/basic/dom/text\"},{\"text\":\"CSS 操作\",\"link\":\"/basic/dom/css\"},{\"text\":\"Mutation Observer API\",\"link\":\"/basic/dom/mutationobserver\"},{\"text\":\"EventTarget 接口\",\"link\":\"/basic/dom/events/eventtarget\"},{\"text\":\"事件模型\",\"link\":\"/basic/dom/events/model\"},{\"text\":\"Event 对象\",\"link\":\"/basic/dom/events/event\"},{\"text\":\"鼠标事件\",\"link\":\"/basic/dom/events/mouse\"},{\"text\":\"键盘事件\",\"link\":\"/basic/dom/events/keyboard\"},{\"text\":\"进度事件\",\"link\":\"/basic/dom/events/progress\"},{\"text\":\"表单事件\",\"link\":\"/basic/dom/events/form\"},{\"text\":\"触摸事件\",\"link\":\"/basic/dom/events/touch\"},{\"text\":\"拖拉事件\",\"link\":\"/basic/dom/events/drag\"},{\"text\":\"其他常见事件\",\"link\":\"/basic/dom/events/common\"},{\"text\":\"GlobalEventHandlers 接口\",\"link\":\"/basic/dom/events/globaleventhandlers\"},{\"text\":\"<a> 元素\",\"link\":\"/basic/dom/elements/a\"},{\"text\":\"<img> 元素\",\"link\":\"/basic/dom/elements/image\"},{\"text\":\"<form> 元素\",\"link\":\"/basic/dom/elements/form\"},{\"text\":\"<input> 元素\",\"link\":\"/basic/dom/elements/input\"},{\"text\":\"<button> 元素\",\"link\":\"/basic/dom/elements/button\"},{\"text\":\"<option> 元素\",\"link\":\"/basic/dom/elements/option\"},{\"text\":\"<video>,<audio>\",\"link\":\"/basic/dom/elements/video\"}]},{\"text\":\"BOM\",\"items\":[{\"text\":\"浏览器环境概述\",\"link\":\"/basic/bom/engine\"},{\"text\":\"window 对象\",\"link\":\"/basic/bom/window\"},{\"text\":\"Navigator 对象,Screen 对象。\",\"link\":\"/basic/bom/navigator\"},{\"text\":\"Cookie\",\"link\":\"/basic/bom/cookie\"},{\"text\":\"XMLHttpRequest 对象\",\"link\":\"/basic/bom/xmlhttprequest\"},{\"text\":\"同源限制\",\"link\":\"/basic/bom/same-origin\"},{\"text\":\"CORS 通信\",\"link\":\"/basic/bom/cors\"},{\"text\":\"Storage 接口\",\"link\":\"/basic/bom/storage\"},{\"text\":\"History 对象\",\"link\":\"/basic/bom/history\"},{\"text\":\"Location 对象,URL 对象,URLSearchParams 对象\",\"link\":\"/basic/bom/location\"},{\"text\":\"ArrayBuffer 对象,Blob 对象\",\"link\":\"/basic/bom/arraybuffer\"},{\"text\":\"File 对象,FileList 对象,FileReader 对象\",\"link\":\"/basic/bom/file\"},{\"text\":\"表单,FormData 对象\",\"link\":\"/basic/bom/form\"},{\"text\":\"IndexedDB API\",\"link\":\"/basic/bom/indexeddb\"},{\"text\":\"Web Worker\",\"link\":\"/basic/bom/webworker\"},{\"text\":\"Canvas API\",\"link\":\"/basic/bom/canvas\"},{\"text\":\"剪贴板操作 Clipboard API 教程\",\"link\":\"/basic/bom/clipboard\"},{\"text\":\"Fetch API 教程\",\"link\":\"/basic/bom/fetch\"},{\"text\":\"FontFace API\",\"link\":\"/basic/bom/fontface\"},{\"text\":\"FormData 对象\",\"link\":\"/basic/bom/formdata\"},{\"text\":\"Geolocation API\",\"link\":\"/basic/bom/geolocation\"},{\"text\":\"Headers 对象\",\"link\":\"/basic/bom/headers\"},{\"text\":\"IntersectionObserver\",\"link\":\"/basic/bom/intersectionObserver\"},{\"text\":\"Intl.RelativeTimeFormat\",\"link\":\"/basic/bom/intl-relativetimeformat\"},{\"text\":\"Intl segmenter API\",\"link\":\"/basic/bom/intl-segmenter\"},{\"text\":\"Page Lifecycle API\",\"link\":\"/basic/bom/page-lifecycle\"},{\"text\":\"Page Visibility API\",\"link\":\"/basic/bom/page-visibility\"},{\"text\":\"Request API\",\"link\":\"/basic/bom/request\"},{\"text\":\"Response API\",\"link\":\"/basic/bom/response\"},{\"text\":\"Server-Sent Events\",\"link\":\"/basic/bom/server-sent-events\"},{\"text\":\"SVG 图像\",\"link\":\"/basic/bom/svg\"},{\"text\":\"URL 对象\",\"link\":\"/basic/bom/url\"},{\"text\":\"URL Pattern API\",\"link\":\"/basic/bom/urlpattern\"},{\"text\":\"URLSearchParams 对象\",\"link\":\"/basic/bom/urlsearchparams\"},{\"text\":\"WebSocket\",\"link\":\"/basic/bom/websocket\"},{\"text\":\"Web Share API\",\"link\":\"/basic/bom/web-share-api\"},{\"text\":\"window.postMessage() 方法\",\"link\":\"/basic/bom/postmessage\"},{\"text\":\"Web Audio API\",\"link\":\"/basic/bom/webaudio\"},{\"text\":\"Web Components\",\"link\":\"/basic/bom/webcomponents\"},{\"text\":\"Service Worker\",\"link\":\"/basic/bom/service-worker\"},{\"text\":\"Offline 应用\",\"link\":\"/basic/bom/offline\"},{\"text\":\"Point lock API\",\"link\":\"/basic/bom/pointer-lock\"}]},{\"text\":\"node\",\"items\":[{\"text\":\"node 简介\",\"link\":\"/basic/node/intro\"},{\"text\":\"node 安装与配置\",\"link\":\"/basic/node/installation\"},{\"text\":\"node 全局变量\",\"link\":\"/basic/node/vars\"},{\"text\":\"node 事件循环\",\"link\":\"/basic/node/event-loop\"},{\"text\":\"node 常用模块\",\"link\":\"/basic/node/modules\"},{\"text\":\"npm 包管理器\",\"link\":\"/basic/node/npm\"}]},{\"text\":\"算法\",\"items\":[{\"text\":\"算法入门\",\"link\":\"/basic/algorithm/intro\"},{\"text\":\"复杂度分析\",\"link\":\"/basic/algorithm/complexity\"},{\"text\":\"数据结构\",\"link\":\"/basic/algorithm/data-struct\"},{\"text\":\"递归与分治\",\"link\":\"/basic/algorithm/divide-conquer\"},{\"text\":\"动态规划 DP\",\"link\":\"/basic/algorithm/dp\"},{\"text\":\"贪心算法\",\"link\":\"/basic/algorithm/greedy\"},{\"text\":\"回溯算法\",\"link\":\"/basic/algorithm/backtracking\"},{\"text\":\"排序算法\",\"link\":\"/basic/algorithm/sorting\"},{\"text\":\"搜索算法\",\"link\":\"/basic/algorithm/searching\"},{\"text\":\"图算法\",\"link\":\"/basic/algorithm/graph\"},{\"text\":\"字符串算法\",\"link\":\"/basic/algorithm/string\"},{\"text\":\"机器学习算法\",\"link\":\"/basic/algorithm/advanced/machine-learning\"},{\"text\":\"密码学算法\",\"link\":\"/basic/algorithm/advanced/cryptography\"},{\"text\":\"近似算法\",\"link\":\"/basic/algorithm/advanced/approximation\"},{\"text\":\"随机化算法\",\"link\":\"/basic/algorithm/advanced/randomized\"},{\"text\":\"性能测试工具\",\"link\":\"/basic/algorithm/performance-tools\"},{\"text\":\"可视化工具\",\"link\":\"/basic/algorithm/visualization\"},{\"text\":\"算法练习平台\",\"link\":\"/basic/algorithm/practice-platforms\"}]}],\"/framework/\":[{\"text\":\"React\",\"items\":[{\"text\":\"React 简介\",\"link\":\"/framework/react/intro\"},{\"text\":\"React JSX\",\"link\":\"/framework/react/jsx\"},{\"text\":\"React 组件\",\"link\":\"/framework/react/component\"},{\"text\":\"React Hooks\",\"link\":\"/framework/react/hooks\"},{\"text\":\"React TSX\",\"link\":\"/framework/react/tsx\"},{\"text\":\"React Fiber\",\"link\":\"/framework/react/fiber\"},{\"text\":\"React Concurrent\",\"link\":\"/framework/react/concurrent\"},{\"text\":\"React Compiler\",\"link\":\"/framework/react/compiler\"},{\"text\":\"React Router\",\"link\":\"/framework/react/router\"},{\"text\":\"React Managing State\",\"link\":\"/framework/react/managing-state\"},{\"text\":\"React UI\",\"link\":\"/framework/react/ui\"},{\"text\":\"React CSS\",\"link\":\"/framework/react/css\"}]},{\"text\":\"Vue\",\"items\":[{\"text\":\"Vue 简介\",\"link\":\"/framework/vue/intro\"},{\"text\":\"Vue 基础\",\"link\":\"/framework/vue/basic\"},{\"text\":\"Vue Component\",\"link\":\"/framework/vue/component\"},{\"text\":\"Vue Directive\",\"link\":\"/framework/vue/directives\"},{\"text\":\"Vue Slot\",\"link\":\"/framework/vue/slots\"},{\"text\":\"生命周期\",\"link\":\"/framework/vue/lifecycle\"},{\"text\":\"Composition API\",\"link\":\"/framework/vue/composition-api\"},{\"text\":\"Vue TS\",\"link\":\"/framework/vue/ts\"},{\"text\":\"响应式原理\",\"link\":\"/framework/vue/reactive\"},{\"text\":\"状态管理\",\"link\":\"/framework/vue/state\"},{\"text\":\"动态组件\",\"link\":\"/framework/vue/dynamic-component\"},{\"text\":\"异步组件\",\"link\":\"/framework/vue/async\"},{\"text\":\"内置组件\",\"link\":\"/framework/vue/internal-component\"}]},{\"text\":\"nextjs\",\"items\":[{\"text\":\"nextjs 入门\",\"link\":\"/framework/nextjs/start\"},{\"text\":\"nextjs 路由系统\",\"link\":\"/framework/nextjs/router\"},{\"text\":\"nextjs 渲染模式\",\"link\":\"/framework/nextjs/rendering\"},{\"text\":\"nextjs 状态管理\",\"link\":\"/framework/nextjs/status\"},{\"text\":\"nextjs 数据获取\",\"link\":\"/framework/nextjs/data-fetching\"},{\"text\":\"nextjs 中间件\",\"link\":\"/framework/nextjs/middleware\"},{\"text\":\"nextjs 生态\",\"link\":\"/framework/nextjs/ecosystem\"}]},{\"text\":\"umijs\",\"items\":[{\"text\":\"umijs 入门\",\"link\":\"/framework/umijs/start\"},{\"text\":\"umijs 路由\",\"link\":\"/framework/umijs/router\"},{\"text\":\"umijs 状态管理\",\"link\":\"/framework/umijs/status\"},{\"text\":\"umijs Mock与代理\",\"link\":\"/framework/umijs/mock\"},{\"text\":\"umijs 构建与部署\",\"link\":\"/framework/umijs/build\"},{\"text\":\"umijs 插件系统\",\"link\":\"/framework/umijs/plugins\"}]},{\"text\":\"nuxtjs\",\"items\":[{\"text\":\"nuxtjs 入门\",\"link\":\"/framework/nuxtjs/start\"},{\"text\":\"nuxtjs 路由系统\",\"link\":\"/framework/nuxtjs/router\"},{\"text\":\"nuxtjs 渲染模式\",\"link\":\"/framework/nuxtjs/rendering\"},{\"text\":\"nuxtjs 状态管理\",\"link\":\"/framework/nuxtjs/status\"},{\"text\":\"nuxtjs 数据获取\",\"link\":\"/framework/nuxtjs/data-fetching\"},{\"text\":\"nuxtjs 中间件\",\"link\":\"/framework/nuxtjs/middleware\"},{\"text\":\"nuxtjs 服务端API\",\"link\":\"/framework/nuxtjs/api\"},{\"text\":\"nuxtjs 插件\",\"link\":\"/framework/nuxtjs/plugins\"}]},{\"text\":\"Vue 2 (EOL)\",\"items\":[{\"text\":\"Vue2 简介\",\"link\":\"/framework/vue2/intro\"},{\"text\":\"Vue2 基础\",\"link\":\"/framework/vue2/basic\"},{\"text\":\"Vue2 Component\",\"link\":\"/framework/vue2/component\"},{\"text\":\"Vue2 Directive\",\"link\":\"/framework/vue2/directives\"},{\"text\":\"Vue2 Slot\",\"link\":\"/framework/vue2/slots\"},{\"text\":\"Vue2 Option API\",\"link\":\"/framework/vue2/option-api\"},{\"text\":\"Vue2 生命周期\",\"link\":\"/framework/vue2/lifecycle\"},{\"text\":\"Vue2 响应式原理\",\"link\":\"/framework/vue2/reactive\"},{\"text\":\"Vue2 状态管理\",\"link\":\"/framework/vue2/state\"},{\"text\":\"Vue2 内置组件\",\"link\":\"/framework/vue2/internal-component\"}]},{\"text\":\"Angular\",\"items\":[{\"text\":\"Angular 入门\",\"link\":\"/framework/angular/start\"},{\"text\":\"Angular 架构\",\"link\":\"/framework/angular/framework\"},{\"text\":\"Angular 模板\",\"link\":\"/framework/angular/tempalte\"},{\"text\":\"Angular 服务与依赖注入\",\"link\":\"/framework/angular/services\"},{\"text\":\"Angular 管道\",\"link\":\"/framework/angular/pipe\"},{\"text\":\"Angular 状态管理\",\"link\":\"/framework/angular/status\"},{\"text\":\"Angular Router\",\"link\":\"/framework/angular/router\"},{\"text\":\"Angular HTTP\",\"link\":\"/framework/angular/http\"},{\"text\":\"Angular 表单\",\"link\":\"/framework/angular/form\"},{\"text\":\"Angualr Rxjs\",\"link\":\"/framework/angular/rxjs\"},{\"text\":\"Angualr signal\",\"link\":\"/framework/angular/signal\"}]}],\"/engineering/\":[{\"text\":\"工程化概述\",\"items\":[{\"text\":\"简介\",\"link\":\"/engineering/intro\"}]},{\"text\":\"包管理\",\"items\":[{\"text\":\"npm\",\"link\":\"/engineering/package-manager/npm\"},{\"text\":\"yarn\",\"link\":\"/engineering/package-manager/yarn\"},{\"text\":\"pnpm\",\"link\":\"/engineering/package-manager/pnpm\"}]},{\"text\":\"架构设计\",\"items\":[{\"text\":\"模块化\",\"link\":\"/engineering/architecture/module\"},{\"text\":\"常用目录结构\",\"link\":\"/engineering/architecture/diretory\"},{\"text\":\"微前端\",\"link\":\"/engineering/architecture/micro-frontend\"},{\"text\":\"monorepo\",\"link\":\"/engineering/architecture/monorep\"}]},{\"text\":\"构建工具\",\"items\":[{\"text\":\"Vite\",\"link\":\"/engineering/build/vite\"},{\"text\":\"Webpack\",\"link\":\"/engineering/build/webpack\"},{\"text\":\"Rollup\",\"link\":\"/engineering/build/rollup\"},{\"text\":\"esbuild\",\"link\":\"/engineering/build/esbuild\"}]},{\"text\":\"代码质量\",\"items\":[{\"text\":\"代码编译检查\",\"link\":\"/engineering/coding/rule\"},{\"text\":\"代码规范\",\"link\":\"/engineering/coding/style\"},{\"text\":\"代码测试\",\"link\":\"/engineering/coding/test\"},{\"text\":\"代码提交检查\",\"link\":\"/engineering/coding/push\"}]},{\"text\":\"性能优化\",\"items\":[{\"text\":\"为什么需要性能优化\",\"link\":\"/engineering/performance/why\"},{\"text\":\"核心性能指标\",\"link\":\"/engineering/performance/core-metrics\"},{\"text\":\"网络层优化\",\"link\":\"/engineering/performance/network\"},{\"text\":\"资源加载优化\",\"link\":\"/engineering/performance/resources\"},{\"text\":\"构建优化\",\"link\":\"/engineering/performance/bundling\"},{\"text\":\"渲染性能优化\",\"link\":\"/engineering/performance/rendering\"},{\"text\":\"JavaScript 性能优化\",\"link\":\"/engineering/performance/javascript\"},{\"text\":\"框架性能优化\",\"link\":\"/engineering/performance/framework\"},{\"text\":\"性能监控\",\"link\":\"/engineering/performance/monitoring\"},{\"text\":\"性能工具链\",\"link\":\"/engineering/performance/tooling\"}]},{\"text\":\"SEO\",\"items\":[{\"text\":\"SEO 基础\",\"link\":\"/engineering/seo/basic\"},{\"text\":\"关键词研究\",\"link\":\"/engineering/seo/keyword-research\"},{\"text\":\"SEO 内容策略\",\"link\":\"/engineering/seo/content-strategy\"},{\"text\":\"网站结构化\",\"link\":\"/engineering/seo/web-struct\"},{\"text\":\"索引管理与爬虫控制\",\"link\":\"/engineering/seo/index-crawl\"},{\"text\":\"网站渲染优化\",\"link\":\"/engineering/seo/renderer\"},{\"text\":\"站外优化\",\"link\":\"/engineering/seo/off-page\"},{\"text\":\"SEO For Google\",\"link\":\"/engineering/seo/for-google\"},{\"text\":\"SEO For Baidu\",\"link\":\"/engineering/seo/for-baidu\"},{\"text\":\"SEO For AI\",\"link\":\"/engineering/seo/for-ai\"},{\"text\":\"SEO 分析与监控\",\"link\":\"/engineering/seo/analytics\"},{\"text\":\"SEO 工具与资源库\",\"link\":\"/engineering/seo/resources\"},{\"text\":\"SEO 未来趋势\",\"link\":\"/engineering/seo/future\"}]},{\"text\":\"无障碍\",\"items\":[{\"text\":\"无障碍简介\",\"link\":\"/engineering/accessible/intro\"},{\"text\":\"html无障碍\",\"link\":\"/engineering/accessible/html\"},{\"text\":\"键盘无障碍\",\"link\":\"/engineering/accessible/keyboard\"},{\"text\":\"色彩与对比度\",\"link\":\"/engineering/accessible/color-contrast\"},{\"text\":\"aria\",\"link\":\"/engineering/accessible/aria\"},{\"text\":\"无障碍框架\",\"link\":\"/engineering/accessible/framework\"},{\"text\":\"手动测试无障碍\",\"link\":\"/engineering/accessible/test\"},{\"text\":\"自动测试无障碍\",\"link\":\"/engineering/accessible/autotest\"}]}],\"/full-stack/\":[{\"text\":\"网络基础\",\"items\":[{\"text\":\"HTTP\",\"link\":\"/full-stack/network/http\"},{\"text\":\"TCP/IP\",\"link\":\"/full-stack/network/tcp-ip\"},{\"text\":\"UPD\",\"link\":\"/full-stack/network/udp\"},{\"text\":\"HTTPS\",\"link\":\"/full-stack/network/https\"},{\"text\":\"WebSocket\",\"link\":\"/full-stack/network/websocket\"},{\"text\":\"wireshark\",\"link\":\"/full-stack/network/wireshark\"}]},{\"text\":\"node 后端\",\"items\":[{\"text\":\"node 后端基础\",\"link\":\"/full-stack/framework/node\"},{\"text\":\"express.js\",\"link\":\"/full-stack/framework/express\"},{\"text\":\"nest.js\",\"link\":\"/full-stack/framework/nestjs\"},{\"text\":\"koa.js\",\"link\":\"/full-stack/framework/koa\"}]},{\"text\":\"Serverless\",\"items\":[{\"text\":\"Serverless 简介\",\"link\":\"/full-stack/serverless/intro\"},{\"text\":\"Serverless 架构\",\"link\":\"/full-stack/serverless/architecture\"},{\"text\":\"云函数\",\"link\":\"/full-stack/serverless/functions\"}]},{\"text\":\"数据库\",\"items\":[{\"text\":\"数据库简介\",\"link\":\"/full-stack/database/intro\"},{\"text\":\"MySQL\",\"link\":\"/full-stack/database/mysql\"},{\"text\":\"MongoDB\",\"link\":\"/full-stack/database/mongodb\"},{\"text\":\"PostgreSQL\",\"link\":\"/full-stack/database/postgresql\"},{\"text\":\"Redis\",\"link\":\"/full-stack/database/redis\"}]},{\"text\":\"运维\",\"items\":[{\"text\":\"Linux\",\"link\":\"/full-stack/operation/linux\"},{\"text\":\"Docker\",\"link\":\"/full-stack/operation/docker\"},{\"text\":\"Kubernetes\",\"link\":\"/full-stack/operation/kubernetes\"},{\"text\":\"CI/CD\",\"link\":\"/full-stack/operation/ci-cd\"},{\"text\":\"监控\",\"link\":\"/full-stack/operation/monitor\"},{\"text\":\"安全\",\"link\":\"/full-stack/operation/security\"}]}],\"/web-3d/\":[{\"text\":\"Web 3D 基础\",\"items\":[{\"text\":\"3D 图形学基础\",\"link\":\"/web-3d/basic/basic\"},{\"text\":\"坐标系系统\",\"link\":\"/web-3d/basic/coordinate-system\"},{\"text\":\"变换与矩阵\",\"link\":\"/web-3d/basic/transform\"}]},{\"text\":\"核心原理\",\"items\":[{\"text\":\"渲染管线\",\"link\":\"/web-3d/theory/principle\"},{\"text\":\"着色器基础\",\"link\":\"/web-3d/theory/shaders\"},{\"text\":\"光照模型\",\"link\":\"/web-3d/theory/lighting\"}]},{\"text\":\"WebGL\",\"items\":[{\"text\":\"WebGL 基础\",\"link\":\"/web-3d/webgl/basic\"},{\"text\":\"缓冲区与顶点\",\"link\":\"/web-3d/webgl/buffers\"},{\"text\":\"纹理与材质\",\"link\":\"/web-3d/webgl/textures\"}]},{\"text\":\"WebGPU\",\"items\":[{\"text\":\"WebGPU 入门\",\"link\":\"/web-3d/webgpu/start\"},{\"text\":\"WebGPU 运行机制\",\"link\":\"/web-3d/webgpu/mechanism\"},{\"text\":\"WebGPU 渲染管线\",\"link\":\"/web-3d/webgpu/pipeline\"},{\"text\":\"WebGPU 计算\",\"link\":\"/web-3d/webgpu/compute\"},{\"text\":\"WebGPU API\",\"link\":\"/web-3d/webgpu/api\"},{\"text\":\"WebGPU 工具链\",\"link\":\"/web-3d/webgpu/toolchain\"}]},{\"text\":\"Three.js\",\"items\":[{\"text\":\"Three.js 入门\",\"link\":\"/web-3d/threejs/basic\"},{\"text\":\"场景与相机\",\"link\":\"/web-3d/threejs/scene-camera\"},{\"text\":\"几何体与材质\",\"link\":\"/web-3d/threejs/geometry-material\"},{\"text\":\"动画系统\",\"link\":\"/web-3d/threejs/animation\"}]},{\"text\":\"WebXR\",\"items\":[{\"text\":\"WebXR 基础\",\"link\":\"/web-3d/webxr/basic\"},{\"text\":\"VR 开发\",\"link\":\"/web-3d/webxr/vr\"},{\"text\":\"AR 开发\",\"link\":\"/web-3d/webxr/ar\"}]},{\"text\":\"性能优化\",\"items\":[{\"text\":\"渲染优化\",\"link\":\"/web-3d/performance/rendering\"},{\"text\":\"内存管理\",\"link\":\"/web-3d/performance/memory\"},{\"text\":\"加载优化\",\"link\":\"/web-3d/performance/loading\"}]}],\"/special/\":[{\"text\":\"移动端\",\"items\":[{\"text\":\"移动端开发概述\",\"link\":\"/special/mobile/basic/intro\"},{\"text\":\"视窗与分辨率\",\"link\":\"/special/mobile/basic/viewport\"},{\"text\":\"触摸事件\",\"link\":\"/special/mobile/basic/touch-events\"},{\"text\":\"React Native\",\"link\":\"/special/mobile/framework/react-native\"},{\"text\":\"Flutter\",\"link\":\"/special/mobile/framework/flutter\"},{\"text\":\"Weex\",\"link\":\"/special/mobile/framework/weex\"},{\"text\":\"响应式设计\",\"link\":\"/special/mobile/web/responsive\"},{\"text\":\"PWA\",\"link\":\"/special/mobile/web/pwa\"},{\"text\":\"混合开发\",\"link\":\"/special/mobile/web/hybrid\"},{\"text\":\"微信小程序\",\"link\":\"/special/mobile/applet/wechat\"},{\"text\":\"支付宝小程序\",\"link\":\"/special/mobile/applet/alipay\"},{\"text\":\"跨端开发\",\"link\":\"/special/mobile/applet/cross-platform\"},{\"text\":\"移动端调试\",\"link\":\"/special/mobile/publish/debug\"},{\"text\":\"应用商店发布\",\"link\":\"/special/mobile/publish/publish\"},{\"text\":\"热更新\",\"link\":\"/special/mobile/publish/hot-update\"}]},{\"text\":\"Electron\",\"items\":[{\"text\":\"Electron 简介\",\"link\":\"/special/electron/intro\"},{\"text\":\"Electron 快速开始\",\"link\":\"/special/electron/start\"},{\"text\":\"electron-vite\",\"link\":\"/special/electron/electron-vite\"},{\"text\":\"Electron 进程模型\",\"link\":\"/special/electron/process-model\"},{\"text\":\"Electron 主进程\",\"link\":\"/special/electron/main-process\"},{\"text\":\"Electron 渲染进程\",\"link\":\"/special/electron/renderer-process\"},{\"text\":\"Electron 进程通信\",\"link\":\"/special/electron/ipc\"},{\"text\":\"Electron BrowserWindow\",\"link\":\"/special/electron/browser-window\"},{\"text\":\"Electron Node\",\"link\":\"/special/electron/node-integration\"},{\"text\":\"Electron 安全\",\"link\":\"/special/electron/security\"},{\"text\":\"Electron 系统功能开发\",\"link\":\"/special/electron/system\"},{\"text\":\"Electron 硬件功能开发\",\"link\":\"/special/electron/hardware\"},{\"text\":\"Electron 集成前端框架\",\"link\":\"/special/electron/ui-framework\"},{\"text\":\"Electron 调试\",\"link\":\"/special/electron/debug\"},{\"text\":\"Electron 日志系统\",\"link\":\"/special/electron/log\"},{\"text\":\"Electron 性能优化\",\"link\":\"/special/electron/performance\"},{\"text\":\"Electron 打包\",\"link\":\"/special/electron/build\"},{\"text\":\"Electron 发布与更新\",\"link\":\"/special/electron/publish\"},{\"text\":\"Electron 集成 C++/Rust/NAPI\",\"link\":\"/special/electron/native\"},{\"text\":\"Electron 集成 WebAssembly\",\"link\":\"/special/electron/wasm\"},{\"text\":\"Electron 运行 Python/Go/Java\",\"link\":\"/special/electron/scripts\"}]},{\"text\":\"命令行开发\",\"items\":[{\"text\":\"简介\",\"link\":\"/special/cli/intro\"},{\"text\":\"脚本与命令\",\"link\":\"/special/cli/run\"},{\"text\":\"参数处理\",\"link\":\"/special/cli/args\"},{\"text\":\"配置管理\",\"link\":\"/special/cli/config\"},{\"text\":\"输入\",\"link\":\"/special/cli/input\"},{\"text\":\"输出与美化\",\"link\":\"/special/cli/output\"},{\"text\":\"进程控制\",\"link\":\"/special/cli/progress\"},{\"text\":\"日志系统\",\"link\":\"/special/cli/log\"},{\"text\":\"跨平台兼容\",\"link\":\"/special/cli/cross-platform\"},{\"text\":\"测试\",\"link\":\"/special/cli/test\"},{\"text\":\"构建\",\"link\":\"/special/cli/build\"},{\"text\":\"发布\",\"link\":\"/special/cli/publish\"}]},{\"text\":\"Web 安全\",\"items\":[{\"text\":\"Web 安全简介\",\"link\":\"/special/security/intro\"},{\"text\":\"OWASP Top 10 概述\",\"link\":\"/special/security/owasp-top10\"},{\"text\":\"常见 Web 攻击与防护\",\"link\":\"/special/security/attacks\"},{\"text\":\"浏览器安全模型\",\"link\":\"/special/security/browser-model\"},{\"text\":\"前端代码混淆\",\"link\":\"/special/security/sourcemap\"},{\"text\":\"认证与授权\",\"link\":\"/special/security/authority\"},{\"text\":\"后端安全实践\",\"link\":\"/special/security/backend\"},{\"text\":\"防火墙\",\"link\":\"/special/security/waf\"},{\"text\":\"API 安全\",\"link\":\"/special/security/api-security\"},{\"text\":\"DDoS 防护\",\"link\":\"/special/security/ddos\"},{\"text\":\"云安全与权限管理(IAM)\",\"link\":\"/special/security/cloud-iam\"},{\"text\":\"渗透测试基础\",\"link\":\"/special/security/pentest\"},{\"text\":\"安全测试工具\",\"link\":\"/special/security/tools\"},{\"text\":\"漏洞扫描与依赖审计\",\"link\":\"/special/security/scanning\"},{\"text\":\"安全日志分析\",\"link\":\"/special/security/log-analysis\"}]}],\"/leading/\":[{\"text\":\"WebAssembly\",\"items\":[{\"text\":\"WASM 基础\",\"link\":\"/leading/webassembly/basic\"},{\"text\":\"WASM 设计哲学\",\"link\":\"/leading/webassembly/design-philosophy\"},{\"text\":\"WASM 快速开始\",\"link\":\"/leading/webassembly/start\"},{\"text\":\"WASM 与 JS 交互\",\"link\":\"/leading/webassembly/js-interaction\"},{\"text\":\"WASM 工具链\",\"link\":\"/leading/webassembly/toolchain\"},{\"text\":\"WASM 与 Rust\",\"link\":\"/leading/webassembly/wasm-rust\"},{\"text\":\"WASM 与 其他语言\",\"link\":\"/leading/webassembly/other-languages\"},{\"text\":\"WASM 内部模块\",\"link\":\"/leading/webassembly/module-structure\"},{\"text\":\"WASM 栈式虚拟机与指令集\",\"link\":\"/leading/webassembly/stack-vm-and-instructions\"},{\"text\":\"WASM 线性内存模型\",\"link\":\"/leading/webassembly/linear-memory\"},{\"text\":\"WASM 系统接口(WASI)\",\"link\":\"/leading/webassembly/wasi\"},{\"text\":\"WASM 服务端\",\"link\":\"/leading/webassembly/server-side\"},{\"text\":\"WASM 线程、SIMD与异常处理\",\"link\":\"/leading/webassembly/threads-simd-exceptions\"},{\"text\":\"WASM 组件模型\",\"link\":\"/leading/webassembly/component-model\"},{\"text\":\"WASM 垃圾回收提案\",\"link\":\"/leading/webassembly/gc-proposal\"},{\"text\":\"WASM 未来展望\",\"link\":\"/leading/webassembly/future\"}]},{\"text\":\"AI & Web\",\"items\":[{\"text\":\"AI 基础概念\",\"link\":\"/leading/ai-web/intro\"},{\"text\":\"AI 核心原理\",\"link\":\"/leading/ai-web/principle\"},{\"text\":\"AI 生态\",\"link\":\"/leading/ai-web/ecosystem\"},{\"text\":\"AI Prompt调优\",\"link\":\"/leading/ai-web/prompt\"},{\"text\":\"AI 大模型API\",\"link\":\"/leading/ai-web/api\"},{\"text\":\"AI Web对话开发\",\"link\":\"/leading/ai-web/chat\"},{\"text\":\"AI 在浏览器中运行\",\"link\":\"/leading/ai-web/run-in-browser\"},{\"text\":\"TensorFlow.js\",\"link\":\"/leading/ai-web/tensorflow\"},{\"text\":\"ONNX\",\"link\":\"/leading/ai-web/onnx\"},{\"text\":\"Transformers.js\",\"link\":\"/leading/ai-web/transformers\"},{\"text\":\"基于AI的Web新交互\",\"link\":\"/leading/ai-web/interaction\"}]},{\"text\":\"Web3\",\"items\":[{\"text\":\"Web3 简介\",\"link\":\"/leading/web3/intro\"},{\"text\":\"区块链基础\",\"link\":\"/leading/web3/blockchain\"},{\"text\":\"去中心化存储\",\"link\":\"/leading/web3/decentralized-storage\"},{\"text\":\"密码学\",\"link\":\"/leading/web3/crypto-basics\"},{\"text\":\"零知识证明\",\"link\":\"/leading/web3/zero-knowledge-proofs\"},{\"text\":\"共识机制\",\"link\":\"/leading/web3/consensus\"},{\"text\":\"区块链网络\",\"link\":\"/leading/web3/chain-net\"},{\"text\":\"Web3 安全\",\"link\":\"/leading/web3/security\"},{\"text\":\"Web3 前端基础\",\"link\":\"/leading/web3/frontend-basic\"},{\"text\":\"ethers.js\",\"link\":\"/leading/web3/ethers\"},{\"text\":\"wagmi & viem\",\"link\":\"/leading/web3/wagmi-viem\"},{\"text\":\"DApp 开发\",\"link\":\"/leading/web3/dapp-development\"},{\"text\":\"智能合约开发\",\"link\":\"/leading/web3/smart-contracts\"},{\"text\":\"加密货币钱包\",\"link\":\"/leading/web3/crypto-wallets\"},{\"text\":\"DeFi 去中心化金融\",\"link\":\"/leading/web3/defi\"},{\"text\":\"NFT 技术与应用\",\"link\":\"/leading/web3/nft\"},{\"text\":\"DAO 治理模式\",\"link\":\"/leading/web3/dao\"},{\"text\":\"跨链互操作性\",\"link\":\"/leading/web3/cross-chain\"},{\"text\":\"ZK & Layer2\",\"link\":\"/leading/web3/zk-layer2\"},{\"text\":\"模块化区块链\",\"link\":\"/leading/web3/modular-blockchain\"},{\"text\":\"Web3 安全审计\",\"link\":\"/leading/web3/security-audit\"},{\"text\":\"Web3 未来展望\",\"link\":\"/leading/web3/future-outlook\"}]}]},\"i18n\":{\"search\":\"搜索\",\"menu\":\"菜单\",\"toc\":\"本页目录\",\"returnToTop\":\"返回顶部\",\"appearance\":\"外观\",\"previous\":\"前一篇\",\"next\":\"下一篇\",\"pageNotFound\":\"页面未找到\",\"deadLink\":{\"before\":\"你打开了一个不存在的链接:\",\"after\":\"。\"},\"deadLinkReport\":{\"before\":\"不介意的话请提交到\",\"link\":\"这里\",\"after\":\",我们会跟进修复。\"},\"footerLicense\":{\"before\":\"\",\"after\":\"\"},\"ariaAnnouncer\":{\"before\":\"\",\"after\":\"已经加载完毕\"},\"ariaDarkMode\":\"切换深色模式\",\"ariaSkipToContent\":\"直接跳到内容\",\"ariaToC\":\"当前页面的目录\",\"ariaMainNav\":\"主导航\",\"ariaMobileNav\":\"移动版导航\",\"ariaSidebarNav\":\"侧边栏导航\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/fengyon/blog\"}],\"editLink\":{\"repo\":\"fengyon/blog#master\",\"text\":\"在 GitHub 上编辑此页\"},\"footer\":{\"license\":{\"text\":\"版权声明\",\"link\":\"https://github.com/fengyon/blog/LICENSE\"},\"copyright\":\"本网站的文档采用 CC BY-SA 4.0 (署名—相同方式共享 4.0 协议国际版) 进行许可,图片版权属于图片的作者。\"}},\"locales\":{},\"scrollOffset\":[\"header\",\".VPLocalNav\"],\"cleanUrls\":false}");</script>
</body>
</html>