Skip to content

Runtime API Examples

This page demonstrates usage of some of the runtime APIs provided by VitePress.

The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:

md
<script setup>
import { useData } from 'vitepress'

const { theme, page, frontmatter } = useData()
</script>

## Results

### Theme Data
<pre>{{ theme }}</pre>

### Page Data
<pre>{{ page }}</pre>

### Page Frontmatter
<pre>{{ frontmatter }}</pre>

Results

Theme Data

{
  "teekTheme": true,
  "vpHome": false,
  "windowTransition": true,
  "backTop": {
    "enabled": true,
    "content": "icon"
  },
  "toComment": {
    "enabled": true
  },
  "codeBlock": {
    "enabled": true,
    "collapseHeight": 700,
    "overlay": true,
    "overlayHeight": 400,
    "langTextTransform": "uppercase"
  },
  "banner": {
    "enabled": true,
    "name": "梦游 笔记",
    "bgStyle": "fullImg",
    "pureBgColor": "#28282d",
    "imgSrc": [
      "/img/bg4.png"
    ],
    "imgInterval": 15000,
    "imgShuffle": false,
    "imgWaves": true,
    "mask": true,
    "maskBg": "rgba(0, 0, 0, 0.1)",
    "textColor": "rgba(168, 255, 75, 0.79)",
    "titleFontSize": "3.2rem",
    "descFontSize": "1.4rem",
    "descStyle": "switch",
    "description": [
      "理解,成为,超越"
    ],
    "switchTime": 4000,
    "switchShuffle": false,
    "typesInTime": 200,
    "typesOutTime": 100,
    "typesNextTime": 800,
    "typesShuffle": false
  },
  "post": {
    "postStyle": "list",
    "excerptPosition": "top",
    "showMore": true,
    "moreLabel": "阅读全文 >",
    "emptyLabel": "暂无文章",
    "coverImgMode": "default",
    "showCapture": true,
    "splitSeparator": true,
    "transition": true,
    "transitionName": "tk-slide-fade",
    "listStyleTitleTagPosition": "right",
    "cardStyleTitleTagPosition": "left",
    "defaultCoverImg": []
  },
  "page": {
    "disabled": true,
    "pageSize": 20,
    "pagerCount": 7,
    "layout": "prev, pager, next, jumper, ->, total",
    "size": "default",
    "background": false,
    "hideOnSinglePage": false
  },
  "homeCardListPosition": "left",
  "blogger": {
    "name": "天游",
    "slogan": "生无涯,学无涯",
    "avatar": "/img/avatar.png",
    "shape": "circle-rotate",
    "circleBgImg": "/img/bg3.png",
    "circleBgMask": false,
    "circleSize": 100,
    "color": "#cf3d02db",
    "status": {
      "icon": "🙂",
      "size": 24,
      "title": "平淡"
    }
  },
  "themeEnhance": {
    "layoutSwitch": {
      "defaultMode": "sidebarWidthAdjustableOnly"
    }
  },
  "logo": "/img/avatar.png",
  "nav": [
    {
      "text": "🏠首页",
      "link": "/"
    },
    {
      "text": "💻前端",
      "items": [
        {
          "text": "①前端基础",
          "link": "..."
        },
        {
          "text": "②前端进阶",
          "link": "..."
        },
        {
          "text": "③前端工程化",
          "link": "..."
        },
        {
          "text": "④前端性能优化",
          "link": "..."
        }
      ]
    },
    {
      "text": "🤖后端",
      "items": [
        {
          "text": "①后端基础",
          "link": "..."
        },
        {
          "text": "②后端进阶",
          "link": "..."
        },
        {
          "text": "③后端工程化",
          "link": "..."
        },
        {
          "text": "④后端性能优化",
          "link": "..."
        }
      ]
    },
    {
      "text": "🎤语音",
      "link": "/语音/api-examples"
    },
    {
      "text": "📚小说",
      "items": [
        {
          "text": "《梦游记》",
          "link": "/小说/梦游记"
        },
        {
          "text": "《长生贼》",
          "link": "/小说/长生贼"
        },
        {
          "text": "《度苦记》",
          "link": "/小说/度苦记"
        },
        {
          "text": "《火种》",
          "link": "/小说/火种"
        },
        {
          "text": "《回魂》",
          "link": "/小说/回魂"
        },
        {
          "text": "《三灾》",
          "link": "/小说/三灾"
        },
        {
          "text": "《往生》",
          "link": "/小说/往生"
        },
        {
          "text": "《盗亦有道》",
          "link": "/小说/盗亦有道"
        },
        {
          "text": "《死环》",
          "link": "/小说/死环"
        }
      ]
    },
    {
      "text": "🙂面试",
      "items": [
        {
          "text": "HTML",
          "link": "/面试/HTML"
        },
        {
          "text": "CSS",
          "link": "/面试/CSS"
        },
        {
          "text": "JavaScript",
          "link": "/面试/JavaScript"
        },
        {
          "text": "TypeScript",
          "link": "/面试/TypeScript"
        },
        {
          "text": "React",
          "link": "/面试/React"
        },
        {
          "text": "Next",
          "link": "/面试/Next"
        },
        {
          "text": "计网",
          "link": "/面试/计网"
        },
        {
          "text": "工程化",
          "link": "/面试/工程化"
        },
        {
          "text": "性能优化",
          "link": "/面试/性能优化"
        },
        {
          "text": "浏览器原理",
          "link": "/面试/浏览器"
        },
        {
          "text": "算法",
          "items": [
            {
              "text": "数组",
              "link": "/算法/数组"
            },
            {
              "text": "链表",
              "link": "/算法/链表"
            },
            {
              "text": "二叉树",
              "link": "/算法/二叉树"
            },
            {
              "text": "栈",
              "link": "/算法/栈"
            },
            {
              "text": "排序",
              "link": "/算法/排序"
            },
            {
              "text": "堆",
              "link": "/算法/堆"
            },
            {
              "text": "动态规划",
              "link": "/算法/动态规划"
            },
            {
              "text": "前端算法",
              "link": "/算法/前端算法"
            }
          ]
        }
      ]
    }
  ],
  "sidebar": {
    "/": [
      {
        "text": "markdown-examples",
        "link": "/markdown-examples"
      }
    ],
    "/前端/": [
      {
        "text": "前端基础",
        "collapsed": false,
        "items": [
          {
            "text": "HTML 笔记",
            "link": "/前端/基础篇/html.md"
          },
          {
            "text": "CSS 笔记",
            "link": "/前端/基础篇/css.md"
          },
          {
            "text": "JavaScript 笔记",
            "link": "/前端/基础篇/javascript.md"
          }
        ]
      },
      {
        "text": "前端框架",
        "collapsed": true,
        "items": [
          {
            "text": "Vue 笔记",
            "link": "/前端/框架篇/vue.md"
          },
          {
            "text": "React 笔记",
            "link": "/前端/框架篇/react.md"
          }
        ]
      },
      {
        "text": "工程化",
        "collapsed": true,
        "items": [
          {
            "text": "Webpack 笔记",
            "link": "/前端/工程化/webpack.md"
          },
          {
            "text": "Vite 笔记",
            "link": "/前端/工程化/vite.md"
          },
          {
            "text": "ESLint 笔记",
            "link": "/前端/工程化/eslint.md"
          }
        ]
      }
    ],
    "/后端/": [
      {
        "text": "后端基础",
        "items": [
          {
            "text": "Node.js 笔记",
            "link": "/后端/node.md"
          },
          {
            "text": "NestJS 笔记",
            "link": "/后端/nestjs.md"
          }
        ]
      }
    ],
    "/小说/": [
      {
        "text": "",
        "items": [
          {
            "text": "三灾",
            "link": "/小说/三灾"
          },
          {
            "text": "回魂",
            "link": "/小说/回魂"
          },
          {
            "text": "度苦记",
            "link": "/小说/度苦记"
          },
          {
            "text": "梦游记",
            "link": "/小说/梦游记"
          },
          {
            "text": "死环",
            "link": "/小说/死环"
          },
          {
            "text": "火种",
            "link": "/小说/火种"
          },
          {
            "text": "盗亦有道",
            "link": "/小说/盗亦有道"
          },
          {
            "text": "返生",
            "link": "/小说/返生"
          },
          {
            "text": "长生贼",
            "link": "/小说/长生贼"
          }
        ]
      }
    ],
    "/算法/": [
      {
        "text": "算法",
        "items": [
          {
            "text": "数组",
            "link": "/算法/数组"
          },
          {
            "text": "链表",
            "link": "/算法/链表"
          },
          {
            "text": "二叉树",
            "link": "/算法/二叉树"
          },
          {
            "text": "栈",
            "link": "/算法/栈"
          },
          {
            "text": "排序",
            "link": "/算法/排序"
          },
          {
            "text": "堆",
            "link": "/算法/堆"
          },
          {
            "text": "动态规划",
            "link": "/算法/动态规划"
          },
          {
            "text": "前端算法",
            "link": "/算法/前端算法"
          }
        ]
      }
    ],
    "/语音/": [
      {
        "text": "",
        "items": [
          {
            "text": "api-examples",
            "link": "/语音/api-examples"
          }
        ]
      }
    ],
    "/面试/": [
      {
        "text": "面试",
        "items": [
          {
            "text": "HTML",
            "link": "/面试/HTML"
          },
          {
            "text": "CSS",
            "link": "/面试/CSS"
          },
          {
            "text": "JavaScript",
            "link": "/面试/JavaScript"
          },
          {
            "text": "TypeScript",
            "link": "/面试/TypeScript"
          },
          {
            "text": "React",
            "link": "/面试/React"
          },
          {
            "text": "Next",
            "link": "/面试/Next"
          },
          {
            "text": "Nest",
            "link": "/面试/Nest"
          },
          {
            "text": "SSE",
            "link": "/面试/SSE"
          },
          {
            "text": "工程化",
            "link": "/面试/工程化"
          },
          {
            "text": "计网",
            "link": "/面试/计网"
          },
          {
            "text": "浏览器",
            "link": "/面试/浏览器"
          },
          {
            "text": "前沿技术",
            "link": "/面试/前沿技术"
          }
        ]
      }
    ],
    "/HTML/": [
      {
        "text": "HTML",
        "items": [
          {
            "text": "语义化标签",
            "link": "/面试/HTML/语义化标签"
          },
          {
            "text": "HTML5新特性",
            "link": "/面试/HTML/HTML5新特性"
          },
          {
            "text": "DOM操作",
            "link": "/面试/HTML/DOM操作"
          },
          {
            "text": "面试及思路",
            "link": "/面试/HTML/高频面试及思路"
          }
        ]
      }
    ],
    "/CSS/": [
      {
        "text": "CSS",
        "items": [
          {
            "text": "盒模型",
            "link": "/面试/CSS/盒模型"
          },
          {
            "text": "CSS选择器及优先级",
            "link": "/面试/CSS/CSS选择器及优先级"
          },
          {
            "text": "核心布局方案",
            "link": "/面试/CSS/核心布局方案"
          },
          {
            "text": "响应式布局",
            "link": "/面试/CSS/响应式布局"
          },
          {
            "text": "样式管理及工程化",
            "link": "/面试/CSS/样式管理及工程化"
          },
          {
            "text": "高频面试题解析",
            "link": "/面试/CSS/高频面试题解析"
          }
        ]
      }
    ]
  },
  "socialLinks": [
    {
      "icon": "github",
      "link": "https://github.com/settings/profile"
    },
    {
      "icon": "bilibili",
      "link": "https://space.bilibili.com/246604314?spm_id_from=333.1007.0.0"
    },
    {
      "icon": "juejin",
      "link": "https://juejin.cn/user/2900991440326403"
    }
  ],
  "permalinks": {
    "map": {},
    "inv": {}
  },
  "docAnalysisInfo": {
    "fileList": [
      {
        "filePath": "/opt/buildhome/repo/docs/markdown-examples.md",
        "relativePath": "markdown-examples.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/前端/index.md",
        "relativePath": "前端/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/前端/基础/index.md",
        "relativePath": "前端/基础/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/前端/进阶/index.md",
        "relativePath": "前端/进阶/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/后端/api-examples.md",
        "relativePath": "后端/api-examples.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/三灾.md",
        "relativePath": "小说/三灾.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/回魂.md",
        "relativePath": "小说/回魂.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/度苦记.md",
        "relativePath": "小说/度苦记.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/梦游记.md",
        "relativePath": "小说/梦游记.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/死环.md",
        "relativePath": "小说/死环.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/火种.md",
        "relativePath": "小说/火种.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/盗亦有道.md",
        "relativePath": "小说/盗亦有道.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/返生.md",
        "relativePath": "小说/返生.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/小说/长生贼.md",
        "relativePath": "小说/长生贼.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/二叉树.md",
        "relativePath": "算法/二叉树.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/前端算法.md",
        "relativePath": "算法/前端算法.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/动态规划.md",
        "relativePath": "算法/动态规划.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/堆.md",
        "relativePath": "算法/堆.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/排序.md",
        "relativePath": "算法/排序.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/数组.md",
        "relativePath": "算法/数组.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/栈.md",
        "relativePath": "算法/栈.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/算法/链表.md",
        "relativePath": "算法/链表.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/语音/api-examples.md",
        "relativePath": "语音/api-examples.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/CSS/index.md",
        "relativePath": "面试/CSS/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/HTML/index.md",
        "relativePath": "面试/HTML/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/JavaScript/index.md",
        "relativePath": "面试/JavaScript/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/Nest/index.md",
        "relativePath": "面试/Nest/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/Next/index.md",
        "relativePath": "面试/Next/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/React/index.md",
        "relativePath": "面试/React/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/SSE/index.md",
        "relativePath": "面试/SSE/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/TypeScript/index.md",
        "relativePath": "面试/TypeScript/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/前沿技术/index.md",
        "relativePath": "面试/前沿技术/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/工程化/index.md",
        "relativePath": "面试/工程化/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/性能优化/index.md",
        "relativePath": "面试/性能优化/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/浏览器/index.md",
        "relativePath": "面试/浏览器/index.md"
      },
      {
        "filePath": "/opt/buildhome/repo/docs/面试/计网/index.md",
        "relativePath": "面试/计网/index.md"
      }
    ],
    "totalFileWords": 4154,
    "eachFileWords": [
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/markdown-examples.md",
          "relativePath": "markdown-examples.md"
        },
        "wordCount": 133,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/前端/index.md",
          "relativePath": "前端/index.md"
        },
        "wordCount": 119,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/前端/基础/index.md",
          "relativePath": "前端/基础/index.md"
        },
        "wordCount": 69,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/前端/进阶/index.md",
          "relativePath": "前端/进阶/index.md"
        },
        "wordCount": 88,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/后端/api-examples.md",
          "relativePath": "后端/api-examples.md"
        },
        "wordCount": 119,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/三灾.md",
          "relativePath": "小说/三灾.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/回魂.md",
          "relativePath": "小说/回魂.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/度苦记.md",
          "relativePath": "小说/度苦记.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/梦游记.md",
          "relativePath": "小说/梦游记.md"
        },
        "wordCount": 119,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/死环.md",
          "relativePath": "小说/死环.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/火种.md",
          "relativePath": "小说/火种.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/盗亦有道.md",
          "relativePath": "小说/盗亦有道.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/返生.md",
          "relativePath": "小说/返生.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/小说/长生贼.md",
          "relativePath": "小说/长生贼.md"
        },
        "wordCount": 0,
        "readingTime": "1m",
        "frontmatter": {}
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/二叉树.md",
          "relativePath": "算法/二叉树.md"
        },
        "wordCount": 115,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/前端算法.md",
          "relativePath": "算法/前端算法.md"
        },
        "wordCount": 237,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/动态规划.md",
          "relativePath": "算法/动态规划.md"
        },
        "wordCount": 115,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/堆.md",
          "relativePath": "算法/堆.md"
        },
        "wordCount": 115,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/排序.md",
          "relativePath": "算法/排序.md"
        },
        "wordCount": 610,
        "readingTime": "2.5m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/数组.md",
          "relativePath": "算法/数组.md"
        },
        "wordCount": 115,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/栈.md",
          "relativePath": "算法/栈.md"
        },
        "wordCount": 115,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/算法/链表.md",
          "relativePath": "算法/链表.md"
        },
        "wordCount": 237,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/语音/api-examples.md",
          "relativePath": "语音/api-examples.md"
        },
        "wordCount": 119,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/CSS/index.md",
          "relativePath": "面试/CSS/index.md"
        },
        "wordCount": 198,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/HTML/index.md",
          "relativePath": "面试/HTML/index.md"
        },
        "wordCount": 128,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/JavaScript/index.md",
          "relativePath": "面试/JavaScript/index.md"
        },
        "wordCount": 152,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/Nest/index.md",
          "relativePath": "面试/Nest/index.md"
        },
        "wordCount": 83,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/Next/index.md",
          "relativePath": "面试/Next/index.md"
        },
        "wordCount": 75,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/React/index.md",
          "relativePath": "面试/React/index.md"
        },
        "wordCount": 185,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/SSE/index.md",
          "relativePath": "面试/SSE/index.md"
        },
        "wordCount": 87,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/TypeScript/index.md",
          "relativePath": "面试/TypeScript/index.md"
        },
        "wordCount": 196,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/前沿技术/index.md",
          "relativePath": "面试/前沿技术/index.md"
        },
        "wordCount": 96,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/工程化/index.md",
          "relativePath": "面试/工程化/index.md"
        },
        "wordCount": 157,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/性能优化/index.md",
          "relativePath": "面试/性能优化/index.md"
        },
        "wordCount": 83,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/浏览器/index.md",
          "relativePath": "面试/浏览器/index.md"
        },
        "wordCount": 118,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      },
      {
        "fileInfo": {
          "filePath": "/opt/buildhome/repo/docs/面试/计网/index.md",
          "relativePath": "面试/计网/index.md"
        },
        "wordCount": 171,
        "readingTime": "1m",
        "frontmatter": {
          "outline": "deep"
        }
      }
    ],
    "lastCommitTime": "2025-12-09 00:46:22"
  },
  "catalogues": {
    "arr": [],
    "map": {},
    "inv": {}
  },
  "posts": {
    "allPosts": [
      {
        "url": "/",
        "relativePath": "/",
        "frontmatter": {
          "layout": "home",
          "hero": {
            "name": "天游笔记",
            "text": "学无涯矣",
            "tagline": "记录路上的每一张风景",
            "actions": [
              {
                "theme": "brand",
                "text": "开始学习🧐",
                "link": "/api-examples"
              },
              {
                "theme": "alt",
                "text": "分类合集📚",
                "link": "/api-examples"
              },
              {
                "theme": "alt",
                "text": "面试题汇总👀",
                "link": "/api-examples"
              }
            ]
          },
          "features": [
            {
              "title": "前端💻",
              "details": "HTML、CSS、JavaScript、TypeScript、React、Vite、性能优化、工程化"
            },
            {
              "title": "语音🎤",
              "details": "音频提取、特征提取、WebRTC、Nodejs、实时传输与识别"
            },
            {
              "title": "面试📦",
              "details": "前端基础、网络、算法、项目"
            }
          ]
        },
        "title": "",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/markdown-examples.html",
        "relativePath": "/markdown-examples.html",
        "frontmatter": {},
        "title": "Markdown Extension Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
      },
      {
        "url": "/前端/",
        "relativePath": "/前端/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/前端/基础/",
        "relativePath": "/前端/基础/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
      },
      {
        "url": "/前端/进阶/",
        "relativePath": "/前端/进阶/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
      },
      {
        "url": "/后端/api-examples.html",
        "relativePath": "/后端/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/三灾.html",
        "relativePath": "/小说/三灾.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/回魂.html",
        "relativePath": "/小说/回魂.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/度苦记.html",
        "relativePath": "/小说/度苦记.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/梦游记.html",
        "relativePath": "/小说/梦游记.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/死环.html",
        "relativePath": "/小说/死环.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/火种.html",
        "relativePath": "/小说/火种.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/盗亦有道.html",
        "relativePath": "/小说/盗亦有道.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/返生.html",
        "relativePath": "/小说/返生.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/长生贼.html",
        "relativePath": "/小说/长生贼.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/算法/二叉树.html",
        "relativePath": "/算法/二叉树.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/前端算法.html",
        "relativePath": "/算法/前端算法.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/算法/动态规划.html",
        "relativePath": "/算法/动态规划.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/堆.html",
        "relativePath": "/算法/堆.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/排序.html",
        "relativePath": "/算法/排序.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
      },
      {
        "url": "/算法/数组.html",
        "relativePath": "/算法/数组.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/栈.html",
        "relativePath": "/算法/栈.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/链表.html",
        "relativePath": "/算法/链表.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/语音/api-examples.html",
        "relativePath": "/语音/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/面试/CSS/",
        "relativePath": "/面试/CSS/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "CSS高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
      },
      {
        "url": "/面试/HTML/",
        "relativePath": "/面试/HTML/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "HTML高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
      },
      {
        "url": "/面试/JavaScript/",
        "relativePath": "/面试/JavaScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "JavaScript高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
      },
      {
        "url": "/面试/Nest/",
        "relativePath": "/面试/Nest/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
      },
      {
        "url": "/面试/Next/",
        "relativePath": "/面试/Next/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Nextjs 面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
      },
      {
        "url": "/面试/React/",
        "relativePath": "/面试/React/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "React高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
      },
      {
        "url": "/面试/SSE/",
        "relativePath": "/面试/SSE/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "SSE流式输出",
        "date": "1970-01-01 00:00:00",
        "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
      },
      {
        "url": "/面试/TypeScript/",
        "relativePath": "/面试/TypeScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "TS面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
      },
      {
        "url": "/面试/前沿技术/",
        "relativePath": "/面试/前沿技术/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "前沿技术面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
      },
      {
        "url": "/面试/工程化/",
        "relativePath": "/面试/工程化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
      },
      {
        "url": "/面试/性能优化/",
        "relativePath": "/面试/性能优化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "性能优化面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
      },
      {
        "url": "/面试/浏览器/",
        "relativePath": "/面试/浏览器/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "浏览器高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
      },
      {
        "url": "/面试/计网/",
        "relativePath": "/面试/计网/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "计网高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
      }
    ],
    "originPosts": [
      {
        "url": "/markdown-examples.html",
        "relativePath": "/markdown-examples.html",
        "frontmatter": {},
        "title": "Markdown Extension Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
      },
      {
        "url": "/前端/",
        "relativePath": "/前端/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/前端/基础/",
        "relativePath": "/前端/基础/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
      },
      {
        "url": "/前端/进阶/",
        "relativePath": "/前端/进阶/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
      },
      {
        "url": "/后端/api-examples.html",
        "relativePath": "/后端/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/三灾.html",
        "relativePath": "/小说/三灾.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/回魂.html",
        "relativePath": "/小说/回魂.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/度苦记.html",
        "relativePath": "/小说/度苦记.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/梦游记.html",
        "relativePath": "/小说/梦游记.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/死环.html",
        "relativePath": "/小说/死环.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/火种.html",
        "relativePath": "/小说/火种.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/盗亦有道.html",
        "relativePath": "/小说/盗亦有道.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/返生.html",
        "relativePath": "/小说/返生.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/长生贼.html",
        "relativePath": "/小说/长生贼.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/算法/二叉树.html",
        "relativePath": "/算法/二叉树.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/前端算法.html",
        "relativePath": "/算法/前端算法.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/算法/动态规划.html",
        "relativePath": "/算法/动态规划.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/堆.html",
        "relativePath": "/算法/堆.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/排序.html",
        "relativePath": "/算法/排序.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
      },
      {
        "url": "/算法/数组.html",
        "relativePath": "/算法/数组.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/栈.html",
        "relativePath": "/算法/栈.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/链表.html",
        "relativePath": "/算法/链表.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/语音/api-examples.html",
        "relativePath": "/语音/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/面试/CSS/",
        "relativePath": "/面试/CSS/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "CSS高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
      },
      {
        "url": "/面试/HTML/",
        "relativePath": "/面试/HTML/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "HTML高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
      },
      {
        "url": "/面试/JavaScript/",
        "relativePath": "/面试/JavaScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "JavaScript高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
      },
      {
        "url": "/面试/Nest/",
        "relativePath": "/面试/Nest/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
      },
      {
        "url": "/面试/Next/",
        "relativePath": "/面试/Next/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Nextjs 面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
      },
      {
        "url": "/面试/React/",
        "relativePath": "/面试/React/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "React高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
      },
      {
        "url": "/面试/SSE/",
        "relativePath": "/面试/SSE/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "SSE流式输出",
        "date": "1970-01-01 00:00:00",
        "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
      },
      {
        "url": "/面试/TypeScript/",
        "relativePath": "/面试/TypeScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "TS面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
      },
      {
        "url": "/面试/前沿技术/",
        "relativePath": "/面试/前沿技术/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "前沿技术面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
      },
      {
        "url": "/面试/工程化/",
        "relativePath": "/面试/工程化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
      },
      {
        "url": "/面试/性能优化/",
        "relativePath": "/面试/性能优化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "性能优化面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
      },
      {
        "url": "/面试/浏览器/",
        "relativePath": "/面试/浏览器/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "浏览器高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
      },
      {
        "url": "/面试/计网/",
        "relativePath": "/面试/计网/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "计网高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
      }
    ],
    "sortPostsByDateAndSticky": [
      {
        "url": "/markdown-examples.html",
        "relativePath": "/markdown-examples.html",
        "frontmatter": {},
        "title": "Markdown Extension Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
      },
      {
        "url": "/前端/",
        "relativePath": "/前端/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/前端/基础/",
        "relativePath": "/前端/基础/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
      },
      {
        "url": "/前端/进阶/",
        "relativePath": "/前端/进阶/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
      },
      {
        "url": "/后端/api-examples.html",
        "relativePath": "/后端/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/三灾.html",
        "relativePath": "/小说/三灾.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/回魂.html",
        "relativePath": "/小说/回魂.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/度苦记.html",
        "relativePath": "/小说/度苦记.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/梦游记.html",
        "relativePath": "/小说/梦游记.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/死环.html",
        "relativePath": "/小说/死环.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/火种.html",
        "relativePath": "/小说/火种.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/盗亦有道.html",
        "relativePath": "/小说/盗亦有道.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/返生.html",
        "relativePath": "/小说/返生.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/长生贼.html",
        "relativePath": "/小说/长生贼.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/算法/二叉树.html",
        "relativePath": "/算法/二叉树.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/前端算法.html",
        "relativePath": "/算法/前端算法.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/算法/动态规划.html",
        "relativePath": "/算法/动态规划.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/堆.html",
        "relativePath": "/算法/堆.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/排序.html",
        "relativePath": "/算法/排序.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
      },
      {
        "url": "/算法/数组.html",
        "relativePath": "/算法/数组.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/栈.html",
        "relativePath": "/算法/栈.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/链表.html",
        "relativePath": "/算法/链表.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/语音/api-examples.html",
        "relativePath": "/语音/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/面试/CSS/",
        "relativePath": "/面试/CSS/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "CSS高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
      },
      {
        "url": "/面试/HTML/",
        "relativePath": "/面试/HTML/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "HTML高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
      },
      {
        "url": "/面试/JavaScript/",
        "relativePath": "/面试/JavaScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "JavaScript高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
      },
      {
        "url": "/面试/Nest/",
        "relativePath": "/面试/Nest/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
      },
      {
        "url": "/面试/Next/",
        "relativePath": "/面试/Next/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Nextjs 面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
      },
      {
        "url": "/面试/React/",
        "relativePath": "/面试/React/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "React高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
      },
      {
        "url": "/面试/SSE/",
        "relativePath": "/面试/SSE/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "SSE流式输出",
        "date": "1970-01-01 00:00:00",
        "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
      },
      {
        "url": "/面试/TypeScript/",
        "relativePath": "/面试/TypeScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "TS面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
      },
      {
        "url": "/面试/前沿技术/",
        "relativePath": "/面试/前沿技术/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "前沿技术面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
      },
      {
        "url": "/面试/工程化/",
        "relativePath": "/面试/工程化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
      },
      {
        "url": "/面试/性能优化/",
        "relativePath": "/面试/性能优化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "性能优化面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
      },
      {
        "url": "/面试/浏览器/",
        "relativePath": "/面试/浏览器/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "浏览器高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
      },
      {
        "url": "/面试/计网/",
        "relativePath": "/面试/计网/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "计网高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
      }
    ],
    "sortPostsByDate": [
      {
        "url": "/markdown-examples.html",
        "relativePath": "/markdown-examples.html",
        "frontmatter": {},
        "title": "Markdown Extension Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
      },
      {
        "url": "/前端/",
        "relativePath": "/前端/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/前端/基础/",
        "relativePath": "/前端/基础/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
      },
      {
        "url": "/前端/进阶/",
        "relativePath": "/前端/进阶/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
      },
      {
        "url": "/后端/api-examples.html",
        "relativePath": "/后端/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/三灾.html",
        "relativePath": "/小说/三灾.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/回魂.html",
        "relativePath": "/小说/回魂.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/度苦记.html",
        "relativePath": "/小说/度苦记.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/梦游记.html",
        "relativePath": "/小说/梦游记.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/小说/死环.html",
        "relativePath": "/小说/死环.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/火种.html",
        "relativePath": "/小说/火种.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/盗亦有道.html",
        "relativePath": "/小说/盗亦有道.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/返生.html",
        "relativePath": "/小说/返生.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/小说/长生贼.html",
        "relativePath": "/小说/长生贼.html",
        "frontmatter": {},
        "title": "html",
        "date": "1970-01-01 00:00:00",
        "capture": ""
      },
      {
        "url": "/算法/二叉树.html",
        "relativePath": "/算法/二叉树.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/前端算法.html",
        "relativePath": "/算法/前端算法.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/算法/动态规划.html",
        "relativePath": "/算法/动态规划.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/堆.html",
        "relativePath": "/算法/堆.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/排序.html",
        "relativePath": "/算法/排序.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
      },
      {
        "url": "/算法/数组.html",
        "relativePath": "/算法/数组.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/栈.html",
        "relativePath": "/算法/栈.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "寻找第K大",
        "date": "1970-01-01 00:00:00",
        "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
      },
      {
        "url": "/算法/链表.html",
        "relativePath": "/算法/链表.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "链表",
        "date": "1970-01-01 00:00:00",
        "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
      },
      {
        "url": "/语音/api-examples.html",
        "relativePath": "/语音/api-examples.html",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Runtime API Examples",
        "date": "1970-01-01 00:00:00",
        "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
      },
      {
        "url": "/面试/CSS/",
        "relativePath": "/面试/CSS/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "CSS高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
      },
      {
        "url": "/面试/HTML/",
        "relativePath": "/面试/HTML/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "HTML高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
      },
      {
        "url": "/面试/JavaScript/",
        "relativePath": "/面试/JavaScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "JavaScript高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
      },
      {
        "url": "/面试/Nest/",
        "relativePath": "/面试/Nest/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
      },
      {
        "url": "/面试/Next/",
        "relativePath": "/面试/Next/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "Nextjs 面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
      },
      {
        "url": "/面试/React/",
        "relativePath": "/面试/React/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "React高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
      },
      {
        "url": "/面试/SSE/",
        "relativePath": "/面试/SSE/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "SSE流式输出",
        "date": "1970-01-01 00:00:00",
        "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
      },
      {
        "url": "/面试/TypeScript/",
        "relativePath": "/面试/TypeScript/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "TS面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
      },
      {
        "url": "/面试/前沿技术/",
        "relativePath": "/面试/前沿技术/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "前沿技术面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
      },
      {
        "url": "/面试/工程化/",
        "relativePath": "/面试/工程化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "工程化高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
      },
      {
        "url": "/面试/性能优化/",
        "relativePath": "/面试/性能优化/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "性能优化面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
      },
      {
        "url": "/面试/浏览器/",
        "relativePath": "/面试/浏览器/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "浏览器高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
      },
      {
        "url": "/面试/计网/",
        "relativePath": "/面试/计网/",
        "frontmatter": {
          "outline": "deep"
        },
        "title": "计网高频面试题",
        "date": "1970-01-01 00:00:00",
        "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
      }
    ],
    "groupPostsByYear": {
      "1970 ": [
        {
          "url": "/markdown-examples.html",
          "relativePath": "/markdown-examples.html",
          "frontmatter": {},
          "title": "Markdown Extension Examples",
          "date": "1970-01-01 00:00:00",
          "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
        },
        {
          "url": "/前端/",
          "relativePath": "/前端/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "Runtime API Examples",
          "date": "1970-01-01 00:00:00",
          "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
        },
        {
          "url": "/前端/基础/",
          "relativePath": "/前端/基础/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "工程化高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
        },
        {
          "url": "/前端/进阶/",
          "relativePath": "/前端/进阶/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "工程化高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
        },
        {
          "url": "/后端/api-examples.html",
          "relativePath": "/后端/api-examples.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "Runtime API Examples",
          "date": "1970-01-01 00:00:00",
          "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
        },
        {
          "url": "/小说/三灾.html",
          "relativePath": "/小说/三灾.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/回魂.html",
          "relativePath": "/小说/回魂.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/度苦记.html",
          "relativePath": "/小说/度苦记.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/梦游记.html",
          "relativePath": "/小说/梦游记.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "Runtime API Examples",
          "date": "1970-01-01 00:00:00",
          "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
        },
        {
          "url": "/小说/死环.html",
          "relativePath": "/小说/死环.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/火种.html",
          "relativePath": "/小说/火种.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/盗亦有道.html",
          "relativePath": "/小说/盗亦有道.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/返生.html",
          "relativePath": "/小说/返生.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/小说/长生贼.html",
          "relativePath": "/小说/长生贼.html",
          "frontmatter": {},
          "title": "html",
          "date": "1970-01-01 00:00:00",
          "capture": ""
        },
        {
          "url": "/算法/二叉树.html",
          "relativePath": "/算法/二叉树.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
        },
        {
          "url": "/算法/前端算法.html",
          "relativePath": "/算法/前端算法.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "链表",
          "date": "1970-01-01 00:00:00",
          "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
        },
        {
          "url": "/算法/动态规划.html",
          "relativePath": "/算法/动态规划.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
        },
        {
          "url": "/算法/堆.html",
          "relativePath": "/算法/堆.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
        },
        {
          "url": "/算法/排序.html",
          "relativePath": "/算法/排序.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
        },
        {
          "url": "/算法/数组.html",
          "relativePath": "/算法/数组.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
        },
        {
          "url": "/算法/栈.html",
          "relativePath": "/算法/栈.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "寻找第K大",
          "date": "1970-01-01 00:00:00",
          "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
        },
        {
          "url": "/算法/链表.html",
          "relativePath": "/算法/链表.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "链表",
          "date": "1970-01-01 00:00:00",
          "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
        },
        {
          "url": "/语音/api-examples.html",
          "relativePath": "/语音/api-examples.html",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "Runtime API Examples",
          "date": "1970-01-01 00:00:00",
          "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
        },
        {
          "url": "/面试/CSS/",
          "relativePath": "/面试/CSS/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "CSS高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
        },
        {
          "url": "/面试/HTML/",
          "relativePath": "/面试/HTML/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "HTML高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
        },
        {
          "url": "/面试/JavaScript/",
          "relativePath": "/面试/JavaScript/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "JavaScript高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
        },
        {
          "url": "/面试/Nest/",
          "relativePath": "/面试/Nest/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "工程化高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
        },
        {
          "url": "/面试/Next/",
          "relativePath": "/面试/Next/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "Nextjs 面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
        },
        {
          "url": "/面试/React/",
          "relativePath": "/面试/React/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "React高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
        },
        {
          "url": "/面试/SSE/",
          "relativePath": "/面试/SSE/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "SSE流式输出",
          "date": "1970-01-01 00:00:00",
          "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
        },
        {
          "url": "/面试/TypeScript/",
          "relativePath": "/面试/TypeScript/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "TS面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
        },
        {
          "url": "/面试/前沿技术/",
          "relativePath": "/面试/前沿技术/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "前沿技术面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
        },
        {
          "url": "/面试/工程化/",
          "relativePath": "/面试/工程化/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "工程化高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
        },
        {
          "url": "/面试/性能优化/",
          "relativePath": "/面试/性能优化/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "性能优化面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
        },
        {
          "url": "/面试/浏览器/",
          "relativePath": "/面试/浏览器/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "浏览器高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
        },
        {
          "url": "/面试/计网/",
          "relativePath": "/面试/计网/",
          "frontmatter": {
            "outline": "deep"
          },
          "title": "计网高频面试题",
          "date": "1970-01-01 00:00:00",
          "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
        }
      ]
    },
    "groupPostsByYearMonth": {
      "1970 ": {
        "01": [
          {
            "url": "/markdown-examples.html",
            "relativePath": "/markdown-examples.html",
            "frontmatter": {},
            "title": "Markdown Extension Examples",
            "date": "1970-01-01 00:00:00",
            "capture": "This page demonstrates some of the built-in markdown extensions provided by VitePress.\n Syntax Highlighting\nVitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:\nInput\n````md\n```js{4}\nexport default {\n  data () {\n    return {\n      msg: 'Highlighte"
          },
          {
            "url": "/前端/",
            "relativePath": "/前端/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "Runtime API Examples",
            "date": "1970-01-01 00:00:00",
            "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
          },
          {
            "url": "/前端/基础/",
            "relativePath": "/前端/基础/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "工程化高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML\n CSS\n JS\nCheck out the documentation for the full list of "
          },
          {
            "url": "/前端/进阶/",
            "relativePath": "/前端/进阶/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "工程化高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS\n Webpack\n Vite\n Vue\n React\n Nodejs/Express/Fastify\n Nuxt.JS\n"
          },
          {
            "url": "/后端/api-examples.html",
            "relativePath": "/后端/api-examples.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "Runtime API Examples",
            "date": "1970-01-01 00:00:00",
            "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
          },
          {
            "url": "/小说/三灾.html",
            "relativePath": "/小说/三灾.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/回魂.html",
            "relativePath": "/小说/回魂.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/度苦记.html",
            "relativePath": "/小说/度苦记.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/梦游记.html",
            "relativePath": "/小说/梦游记.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "Runtime API Examples",
            "date": "1970-01-01 00:00:00",
            "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
          },
          {
            "url": "/小说/死环.html",
            "relativePath": "/小说/死环.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/火种.html",
            "relativePath": "/小说/火种.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/盗亦有道.html",
            "relativePath": "/小说/盗亦有道.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/返生.html",
            "relativePath": "/小说/返生.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/小说/长生贼.html",
            "relativePath": "/小说/长生贼.html",
            "frontmatter": {},
            "title": "html",
            "date": "1970-01-01 00:00:00",
            "capture": ""
          },
          {
            "url": "/算法/二叉树.html",
            "relativePath": "/算法/二叉树.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
          },
          {
            "url": "/算法/前端算法.html",
            "relativePath": "/算法/前端算法.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "链表",
            "date": "1970-01-01 00:00:00",
            "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
          },
          {
            "url": "/算法/动态规划.html",
            "relativePath": "/算法/动态规划.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
          },
          {
            "url": "/算法/堆.html",
            "relativePath": "/算法/堆.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
          },
          {
            "url": "/算法/排序.html",
            "relativePath": "/算法/排序.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n&lt;pre\n&lt;pre&gt;输入:数组及数字k&lt;/pre&gt;\n&lt;pre&gt;输出:第k大的数&lt;/pre&gt;\n&lt;pre&gt;思路:nums是一个数组,我们可以先找k对应数的索引,即排序过后数的对应索引\n随后,我们通过快速选择配合分区来进行筛选\n首先确定left和right,partition中进行判断,可以以right为基准\n然后让j等于左边界,开始循环,每次增加时判断与right的大小\n当j对应的值小于基准值,则让其放到左区中,逻辑是 [num[i++],num[j]] = [num[j],num[i]]\n第一轮实际上i=j,i++是控"
          },
          {
            "url": "/算法/数组.html",
            "relativePath": "/算法/数组.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
          },
          {
            "url": "/算法/栈.html",
            "relativePath": "/算法/栈.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "寻找第K大",
            "date": "1970-01-01 00:00:00",
            "capture": "寻找第K大\n思路: 分治思想,及快速选择算法或者使用小栈堆,即维护K个元素,堆顶为第K大\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\nconst { theme, page, frontmatter } = useData()\n&lt;/script&gt;\n Results\n Theme Data\n&lt;pre&gt;{{ theme }}&lt;/pre&gt;\n Page Data\n&lt;pre&gt;{{ page }}&lt;/pre&gt;\n Page Frontmatter\n&lt;pre&gt;{{ "
          },
          {
            "url": "/算法/链表.html",
            "relativePath": "/算法/链表.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "链表",
            "date": "1970-01-01 00:00:00",
            "capture": "链表\n 反转链表\n&lt;pre\n&lt;pre&gt;输入:head头节点&lt;/pre&gt;\n&lt;pre&gt;输出:反转后新头节点&lt;/pre&gt;\n 思路及代码\n&lt;pre&gt;思路:记录,反转\n给前任赋null,现任是头节点\n然后还有现任的时候,先把下任存好(const next = curr.next)\n让现任的next指针去找前任,即 curr.next = prev\n把前任换成现任, prev = curr\n把现任换成下一任, curr = next\n&lt;/pre&gt;\n``` JS\nfunction reverseList(head){  //传入头"
          },
          {
            "url": "/语音/api-examples.html",
            "relativePath": "/语音/api-examples.html",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "Runtime API Examples",
            "date": "1970-01-01 00:00:00",
            "capture": "Runtime API Examples\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n&lt;script setup\nimport { useData } from 'vitepress'\ncon"
          },
          {
            "url": "/面试/CSS/",
            "relativePath": "/面试/CSS/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "CSS高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "CSS高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n BFC的意义与用法\n Theme Data\n Page Data\n Page Frontmatter\n 常见布局方案及定位方式"
          },
          {
            "url": "/面试/HTML/",
            "relativePath": "/面试/HTML/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "HTML高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "HTML高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n HTML语义化标签\n Theme Data\n Page Data\n Page Frontmatter\n HTML结构\n HT"
          },
          {
            "url": "/面试/JavaScript/",
            "relativePath": "/面试/JavaScript/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "JavaScript高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "JavaScript高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n ES6+新特性\n Theme Data\n Page Data\n Page Frontmatter\n 闭包\n JS"
          },
          {
            "url": "/面试/Nest/",
            "relativePath": "/面试/Nest/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "工程化高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n NestJS的底层原理\n IOC\n 依赖注入\n NestJS Module\n NestJS Controller\n NestJ"
          },
          {
            "url": "/面试/Next/",
            "relativePath": "/面试/Next/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "Nextjs 面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "```md\n```\n Nextjs的优点\n Nextjs路由\n 文件夹路由\n 嵌套路由\n Nextjs优化\n 路由懒加载\n 图片懒加载\n 组件懒加载\n Nextjs 水合\n Nextjs 渲染\n SSR的实现\n SSG的实现\n CSR的实现\nCheck out the documentation for the full list of runtime APIs."
          },
          {
            "url": "/面试/React/",
            "relativePath": "/面试/React/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "React高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "React高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 虚拟DOM与Diff算法\n Diff算法的优化策略\n Theme Data\n&lt;pre\n Page Data\n&lt;"
          },
          {
            "url": "/面试/SSE/",
            "relativePath": "/面试/SSE/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "SSE流式输出",
            "date": "1970-01-01 00:00:00",
            "capture": "SSE流式输出\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n SSE流式输出的概念\n SSE流式输出的原理\n SSE流式输出的实现\nCheck out the documentation f"
          },
          {
            "url": "/面试/TypeScript/",
            "relativePath": "/面试/TypeScript/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "TS面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "TS面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n TS在项目中的使用\n Theme Data\n Page Data\n Page Frontmatter\n Interface和type"
          },
          {
            "url": "/面试/前沿技术/",
            "relativePath": "/面试/前沿技术/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "前沿技术面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "前沿技术面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n WebAssembly\n 微前端\n 常用的微前端框架\n React Native /小程序开发\n AI大模型在前端的应用场景\nC"
          },
          {
            "url": "/面试/工程化/",
            "relativePath": "/面试/工程化/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "工程化高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "工程化高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n Webpack\n loader和plugin的区别\n 自定义loader/plugin\n Vite\n Vite的热更新原理\n "
          },
          {
            "url": "/面试/性能优化/",
            "relativePath": "/面试/性能优化/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "性能优化面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "性能优化面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n  代码优化\n  静态资源优化\n  组件优化\n  缓存优化\nCheck out the documentation for the"
          },
          {
            "url": "/面试/浏览器/",
            "relativePath": "/面试/浏览器/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "浏览器高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "浏览器高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 浏览器的垃圾回收机制\n 浏览器渲染流程\n 浏览器同源策略\n 浏览器性能指标\n Service Worker\n 如何实现 PWA"
          },
          {
            "url": "/面试/计网/",
            "relativePath": "/面试/计网/",
            "frontmatter": {
              "outline": "deep"
            },
            "title": "计网高频面试题",
            "date": "1970-01-01 00:00:00",
            "capture": "计网高频面试题\nThis page demonstrates usage of some of the runtime APIs provided by VitePress.\nThe main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:\n```md\n```\n 常见的网络攻击\n XSS\n CRSF\n Theme Data\n&lt;pre\n Page Data\n&lt;pre&gt;{{ "
          }
        ]
      }
    },
    "groupPosts": {
      "categories": {},
      "tags": {}
    },
    "groupCards": {
      "categories": [],
      "tags": []
    }
  }
}

Page Data

{
  "title": "Runtime API Examples",
  "description": "",
  "frontmatter": {
    "outline": "deep"
  },
  "headers": [],
  "relativePath": "小说/梦游记.md",
  "filePath": "小说/梦游记.md"
}

Page Frontmatter

{
  "outline": "deep"
}

More

Check out the documentation for the full list of runtime APIs.

最近更新