# 前端

- [JavaScript](https://chanshiyu.gitbook.io/blog/qian-duan/javascript.md)
- [01 JavaScript 秘密花园](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/01javascript-mi-mi-hua-yuan.md)
- [02 JavaScript 正则技巧](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/02javascript-zheng-ze-ji-qiao.md)
- [03 从浏览器解析 JS 运行机制](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/03-cong-liu-lan-qi-jie-xi-js-yun-hang-ji-zhi.md)
- [04 Canvas 基础用法](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/04canvas-ji-chu-yong-fa.md)
- [05 Blob Url And Data Url](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/05-blob-url-and-data-url.md)
- [06 函数节流与函数防抖](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/06-han-shu-jie-liu-yu-han-shu-fang-dou.md)
- [07 排序算法初探](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/07-pai-xu-suan-fa-chu-tan.md)
- [08 洗牌算法实现数组乱序](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/08-xi-pai-suan-fa-shi-xian-shu-zu-luan-xu.md)
- [09 正则匹配 match 和 exec](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/09-zheng-ze-pi-pei-match-he-exec.md)
- [10 正则匹配汉字](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/10-zheng-ze-pi-pei-han-zi.md)
- [11 JSX.Element vs ReactElement](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/11-jsx.element-vs-reactelement.md)
- [12 可选链与空值合并](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/12-ke-xuan-lian-yu-kong-zhi-he-bing.md)
- [13 TypeScript 编码规范](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/13typescript-bian-ma-gui-fan.md)
- [14 Typescript 中 interface 和 type 区别](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/14typescript-zhong-interface-he-type-qu-bie.md)
- [15 TypeScript 高级类型](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/15typescript-gao-ji-lei-xing.md)
- [16 TypeScript 关键字](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/16typescript-guan-jian-zi.md)
- [17 TypeScript 映射类型](https://chanshiyu.gitbook.io/blog/qian-duan/javascript/17typescript-ying-she-lei-xing.md)
- [CSS](https://chanshiyu.gitbook.io/blog/qian-duan/css.md)
- [01 Flex 弹性布局](https://chanshiyu.gitbook.io/blog/qian-duan/css/01flex-dan-xing-bu-ju.md)
- [02 Position 定位](https://chanshiyu.gitbook.io/blog/qian-duan/css/02position-ding-wei.md)
- [03 CSS 逻辑属性](https://chanshiyu.gitbook.io/blog/qian-duan/css/03css-luo-ji-shu-xing.md)
- [Node](https://chanshiyu.gitbook.io/blog/qian-duan/node.md)
- [01 Node Tips](https://chanshiyu.gitbook.io/blog/qian-duan/node/01-node-tips.md)
- [02 七天学会 NodeJS](https://chanshiyu.gitbook.io/blog/qian-duan/node/02-qi-tian-xue-hui-nodejs.md)
- [Note](https://chanshiyu.gitbook.io/blog/qian-duan/note.md)
- [01 Note](https://chanshiyu.gitbook.io/blog/qian-duan/note/01-note.md)
- [02 Code](https://chanshiyu.gitbook.io/blog/qian-duan/note/02-code.md)
- [03 Snippets](https://chanshiyu.gitbook.io/blog/qian-duan/note/03-snippets.md)
- [04 Git](https://chanshiyu.gitbook.io/blog/qian-duan/note/04-git.md)
- [React](https://chanshiyu.gitbook.io/blog/qian-duan/react.md)
- [01 React Props Children 传值](https://chanshiyu.gitbook.io/blog/qian-duan/react/01reactpropschildren-chuan-zhi.md)
- [02 Use a Render Prop!](https://chanshiyu.gitbook.io/blog/qian-duan/react/02-use-a-render-prop.md)
- [03 React Hook](https://chanshiyu.gitbook.io/blog/qian-duan/react/03-react-hook.md)
- [04 React Hook 定时器](https://chanshiyu.gitbook.io/blog/qian-duan/react/04reacthook-ding-shi-qi.md)
- [05 Fetch data with React Hooks](https://chanshiyu.gitbook.io/blog/qian-duan/react/05-fetch-data-with-react-hooks.md)
- [06 React 和 Vue 中 key 的作用](https://chanshiyu.gitbook.io/blog/qian-duan/react/06react-he-vue-zhong-key-de-zuo-yong.md)
- [07 useCallback 的正确使用方式](https://chanshiyu.gitbook.io/blog/qian-duan/react/07usecallback-de-zheng-que-shi-yong-fang-shi.md)
- [08 useLayoutEffect 和 useEffect 的区别](https://chanshiyu.gitbook.io/blog/qian-duan/react/08-uselayouteffect-he-useeffect-de-qu-bie.md)
- [09 forwardRef 逃生舱](https://chanshiyu.gitbook.io/blog/qian-duan/react/09forwardref-tao-sheng-cang.md)
- [10 React 条件渲染](https://chanshiyu.gitbook.io/blog/qian-duan/react/10react-tiao-jian-xuan-ran.md)
- [Vue](https://chanshiyu.gitbook.io/blog/qian-duan/vue.md)
- [01 Vue Tips](https://chanshiyu.gitbook.io/blog/qian-duan/vue/01-vue-tips.md)
- [02 Vue 构建项目写入配置文件](https://chanshiyu.gitbook.io/blog/qian-duan/vue/02vue-gou-jian-xiang-mu-xie-ru-pei-zhi-wen-jian.md)
- [03 Vue 项目引入 SVG 图标](https://chanshiyu.gitbook.io/blog/qian-duan/vue/03vue-xiang-mu-yin-ru-svg-tu-biao.md)
- [04 Vue 一键导出 PDF](https://chanshiyu.gitbook.io/blog/qian-duan/vue/04vue-yi-jian-dao-chu-pdf.md)
- [05 动态可响应对象](https://chanshiyu.gitbook.io/blog/qian-duan/vue/05-dong-tai-ke-xiang-ying-dui-xiang.md)
- [06 Vue 引入 SCSS](https://chanshiyu.gitbook.io/blog/qian-duan/vue/06vue-yin-ru-scss.md)
- [07 Vue 路由权限控制](https://chanshiyu.gitbook.io/blog/qian-duan/vue/07vue-lu-you-quan-xian-kong-zhi.md)
- [实战系列](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie.md)
- [01 WebSocket 心跳重连机制](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/01websocket-xin-tiao-zhong-lian-ji-zhi.md)
- [02 图片加解密二三事](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/02-tu-pian-jia-jie-mi-er-san-shi.md)
- [03 优雅实现 BackTop](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/03-you-ya-shi-xian-backtop.md)
- [04 动态加载 JS 文件](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/04-dong-tai-jia-zai-js-wen-jian.md)
- [05 常用 DOM 方法比较](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/05-chang-yong-dom-fang-fa-bi-jiao.md)
- [06 AbortController 中断 fetch](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/06abortcontroller-zhong-duan-fetch.md)
- [07 计算字符所占字节数](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/07-ji-suan-zi-fu-suo-zhan-zi-jie-shu.md)
- [08 Axios 自定义返回值类型](https://chanshiyu.gitbook.io/blog/qian-duan/shi-zhan-xi-lie/08axios-zi-ding-yi-fan-hui-zhi-lei-xing.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chanshiyu.gitbook.io/blog/qian-duan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
