├── .nojekyll ├── 404.html ├── LICENSE ├── about.html ├── assets ├── css │ └── styles.0f62048e.css └── js │ ├── 02fa4020.d80415df.js │ ├── 02fefe41.b3f9381e.js │ ├── 0ba2ede9.56884b73.js │ ├── 1a4e3797.10deaa27.js │ ├── 1a4e3797.10deaa27.js.LICENSE.txt │ ├── 1be78505.418dd524.js │ ├── 1f391b9e.a00364fc.js │ ├── 216712ef.2205d07e.js │ ├── 223d151b.a2893301.js │ ├── 230.34dddfc8.js │ ├── 2384.4861d8b1.js │ ├── 26d83c4c.edef56f4.js │ ├── 272.a34d203d.js │ ├── 2ad5369a.582e9919.js │ ├── 312ed758.c38443de.js │ ├── 31bf44dd.fe411772.js │ ├── 3bd79dc4.81d1364b.js │ ├── 3d604b8e.a7165cd6.js │ ├── 4972.bea3865f.js │ ├── 4f33924b.6c95a067.js │ ├── 505fc875.611070a6.js │ ├── 5178.6dd866d0.js │ ├── 520898ab.4d2ef29d.js │ ├── 5283.79fe536c.js │ ├── 57076a74.a9e996b1.js │ ├── 5825b5f0.c4348d51.js │ ├── 59da24a9.b2082b98.js │ ├── 5ba709b9.3ab20d87.js │ ├── 5cddde15.3da6324e.js │ ├── 605371c8.71cb6ac4.js │ ├── 6511.4f41f0a7.js │ ├── 667a1a38.0def7602.js │ ├── 6b15a8e7.370eb108.js │ ├── 6b1ae1c5.73c2607f.js │ ├── 7c39e10e.72217821.js │ ├── 8584d295.ebf32f7e.js │ ├── 8624.ef1f3195.js │ ├── 8624.ef1f3195.js.LICENSE.txt │ ├── 8894.446f680f.js │ ├── 90b799f4.6601a4ef.js │ ├── 92d10100.a6f541cd.js │ ├── 935f2afb.ae96f8c3.js │ ├── 972d49dd.e496a32b.js │ ├── 99c95826.de80d85d.js │ ├── 9e3afa9a.0b52dd30.js │ ├── 9f1c36eb.f2d83d86.js │ ├── a757db9b.62dd77de.js │ ├── ab21f6e2.e3bd364c.js │ ├── abf449ea.b1986ef7.js │ ├── b728f6fe.bba33834.js │ ├── b948ee85.51069a20.js │ ├── bfa6c7fa.1eac726c.js │ ├── c48aeec7.94e91701.js │ ├── d04fa17f.2a5decdb.js │ ├── d4358da1.05e70cb8.js │ ├── d5444868.acde29ec.js │ ├── d9cd0856.cc532560.js │ ├── d9d15992.54894bba.js │ ├── da95f3d6.ff213c15.js │ ├── dd5deefd.039b46a5.js │ ├── dfd24482.a8c9edca.js │ ├── e2f5eafd.57ff7439.js │ ├── e31563f4.d05d9934.js │ ├── e3741bf5.5a137d01.js │ ├── e420c2e8.d885ff56.js │ ├── e9fc5b99.babb79cb.js │ ├── f4f9ee34.40b1280a.js │ ├── f930e7e8.1501d559.js │ ├── main.a5e14537.js │ ├── main.a5e14537.js.LICENSE.txt │ └── runtime~main.a75952d5.js ├── book1 ├── algorithm-balanced-binary-trees.html ├── browser-cross-origin.html ├── browser-repain-reflow.html ├── coding-promise.html ├── css-bfc.html ├── engineer-webpack-workflow.html ├── frame-vue-computed-watch.html ├── frame-vue-data-binding.html ├── js-closures.html ├── js-module-specs.html ├── network-security.html └── topic-enter-url-display-xx.html ├── book2 ├── algorithm-reverse-linked-list.html ├── browser-garbage.html ├── browser-render-mechanism.html ├── coding-throttle-debounce.html ├── css-preprocessor.html ├── engineer-babel.html ├── frame-react-fiber.html ├── frame-react-hoc-hooks.html ├── js-inherite.html ├── js-new.html ├── network-http-cache.html └── topic-multi-pics-site-optimize.html ├── book3 ├── algorithm-binary-tree-k.html ├── browser-event-loop.html ├── browser-memory-leaks.html ├── coding-arr-to-tree.html ├── css-mobile-adaptive.html ├── engineer-webpack-loader.html ├── frame-diff.html ├── frame-react-hooks.html ├── js-async.html ├── js-ts-interface-type.html ├── network-http-1-2.html └── topic-white-screen-optimization.html ├── book4 ├── array-repeat-number.html ├── browser-local-storage.html ├── browser-router.html ├── coding-apply-call-bind.html ├── css-vertical-horizontal-center.html ├── engineer-front-end-testing.html ├── engineer-mfa.html ├── frame-react-event-mechanism.html ├── frame-react-vs-vue.html └── js-ts-generics.html ├── guide.html ├── img ├── arrow.svg ├── badge-192.svg ├── badge-512.svg ├── badge.png ├── badge.svg └── favicon.ico ├── index.html ├── manifest.json ├── opensearch.xml ├── readme.md ├── search.html ├── sitemap.xml ├── src_sw_js.sw.js ├── src_sw_js.sw.js.map ├── sw.js └── sw.js.map /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HZFE/awesome-interview/2f72768482a57cec60170a468cb8066436d1310f/.nojekyll -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Page Not Found | HZFE - 剑指前端 Offer 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | # Creative Commons Attribution-NonCommercial 4.0 International License 2 | 3 | Disclaimer: This is a human-readable summary of (and not a substitute for) the [license](http://creativecommons.org/licenses/by-nc/4.0/legalcode). 4 | 5 | You are free to: 6 | 7 | - Share — copy and redistribute the material in any medium or format 8 | - Adapt — remix, transform, and build upon the material 9 | 10 | The licensor cannot revoke these freedoms as long as you follow the license terms. 11 | 12 | Under the following terms: 13 | 14 | - Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 15 | - NonCommercial — You may not use the material for commercial purposes. 16 | - No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 17 | 18 | Notices: 19 | 20 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. 21 | 22 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. 23 | -------------------------------------------------------------------------------- /about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 关于我们 | HZFE - 剑指前端 Offer 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
Skip to main content

关于我们

Hi,我们是 HZFE,一群来自于五湖四海的 90 后技术人。

一些缘分 :D

一群固定的人总聚在一起,不知不觉就会成为一个所谓的团队。而我们的团队代号“HZFE”,总让不明其意的人拼错或不知如何发音。曾经在我们三周年活动蛋糕上,店家就用心写下了“H2FF 三周年快乐”的祝福。但是问题不大,只要我们不说,没有人会知道。

我们最初相识于拥有 17 位成员的群聊,群聊名称正是 HZFE。其本意是杭州前端(Hangzhou Front-End),所以也读作“杭州 FE”。尽管我们大多不在杭州,也不全是前端。所以姑且当这是个没道理的代号吧,而我们的相聚则是一场有趣的缘分。

可爱的人 0:)

和每个普通人一样,我们大多过着三点一线的生活。喜欢旅游也爱摄影,也像千千万个理财小白一般,在正向或是反向理财中来回波动。每天都在产出新的想法,一起头脑风暴,结局总是以没有设计师为借口不了了之,三分钟热度成了我们心照不宣的默契。每天都在做梦,讲些不切实际的幻想,平凡且平庸。

如果说,唯一值得小小炫耀一番的,便是我们这群人对于热爱开发这件事达成了共识。不论是做开源、做自己的产品亦或各自在工作岗位上,都有所收获和成绩。目前团队开源的技术项目累计 6k star 以上,成员主要任职于腾讯、阿里巴巴、字节跳动、百度等一二线互联网公司,同时也不乏优秀的个人开发者。或许我们也是幸运的,在刚踏入社会时相遇相知相爱,彼此影响,一同成长为此刻至少技术还不赖的人。

做些东西 ;‑)

因缘巧合下,在某天如同往日的头脑风暴中,我们一拍脑袋,说要一起写本书,将五年来对于行业面试规则和趋势的了解整理成册。就此,开启了这场坎坷的写作之旅。

正如其名:剑指前端 Offer,希望在这本书的帮助下,我们和读者都能有所成长。

Loading script...
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /assets/js/02fa4020.d80415df.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[439],{83769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); -------------------------------------------------------------------------------- /assets/js/02fefe41.b3f9381e.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[1906],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>g});var l=t(67294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n&&(l=l.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,l)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var c=l.createContext({}),p=function(e){var n=l.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=p(e.components);return l.createElement(c.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return l.createElement(l.Fragment,{},n)}},m=l.forwardRef((function(e,n){var t=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(t),m=r,g=u["".concat(c,".").concat(m)]||u[m]||d[m]||a;return t?l.createElement(g,i(i({ref:n},s),{},{components:t})):l.createElement(g,i({ref:n},s))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var a=t.length,i=new Array(a);i[0]=m;var o={};for(var c in n)hasOwnProperty.call(n,c)&&(o[c]=n[c]);o.originalType=e,o[u]="string"==typeof e?e:r,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var l=t(87462),r=(t(67294),t(3905));const a={sidebar_label:"\u6837\u5f0f\uff1a\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848",sidebar_position:8},i="\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848",o={unversionedId:"book4/css-vertical-horizontal-center",id:"book4/css-vertical-horizontal-center",title:"\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848",description:"\u4ee5\u4e0b\u65b9\u6848\u5747\u57fa\u4e8e\u5982\u4e0b\u5e03\u5c40\u548c\u57fa\u7840\u6837\u5f0f\uff1a",source:"@site/docs/book4/css-vertical-horizontal-center.md",sourceDirName:"book4",slug:"/book4/css-vertical-horizontal-center",permalink:"/awesome-interview/book4/css-vertical-horizontal-center",draft:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_label:"\u6837\u5f0f\uff1a\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848",sidebar_position:8},sidebar:"tutorialSidebar",previous:{title:"\u57fa\u7840\uff1a\u4ec0\u4e48\u662f TypeScript \u6cdb\u578b",permalink:"/awesome-interview/book4/js-ts-generics"},next:{title:"\u7f16\u7801\uff1a\u5b9e\u73b0 apply/call/bind",permalink:"/awesome-interview/book4/coding-apply-call-bind"}},c={},p=[{value:"flex",id:"flex",level:2},{value:"grid",id:"grid",level:2},{value:"\u76f8\u5bf9\u5b9a\u4f4d",id:"\u76f8\u5bf9\u5b9a\u4f4d",level:2},{value:"1. transform",id:"1-transform",level:3},{value:"2. calc",id:"2-calc",level:3},{value:"\u7edd\u5bf9\u5b9a\u4f4d",id:"\u7edd\u5bf9\u5b9a\u4f4d",level:2},{value:"1. transform",id:"1-transform-1",level:3},{value:"2. calc",id:"2-calc-1",level:3},{value:"3. \u8d1f\u5916\u8fb9\u8ddd",id:"3-\u8d1f\u5916\u8fb9\u8ddd",level:3},{value:"4. \u81ea\u52a8\u5916\u8fb9\u8ddd",id:"4-\u81ea\u52a8\u5916\u8fb9\u8ddd",level:3},{value:"table-cell",id:"table-cell",level:2},{value:"line-height",id:"line-height",level:2}],s={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,l.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848"},"\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848"),(0,r.kt)("p",null,"\u4ee5\u4e0b\u65b9\u6848\u5747\u57fa\u4e8e\u5982\u4e0b\u5e03\u5c40\u548c\u57fa\u7840\u6837\u5f0f\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-html"},'
\n
HZFE
\n
\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n background: red;\n height: 600px;\n}\n\n#children {\n background: blue;\n}\n")),(0,r.kt)("h2",{id:"flex"},"flex"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n")),(0,r.kt)("h2",{id:"grid"},"grid"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n display: grid;\n justify-content: center;\n align-items: center;\n}\n")),(0,r.kt)("h2",{id:"\u76f8\u5bf9\u5b9a\u4f4d"},"\u76f8\u5bf9\u5b9a\u4f4d"),(0,r.kt)("h3",{id:"1-transform"},"1. transform"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#children {\n display: inline-block;\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n")),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#children {\n width: 400px;\n height: 300px;\n position: relative;\n top: 50%;\n left: 50%;\n transform: translate(-200px, -150px);\n}\n")),(0,r.kt)("h3",{id:"2-calc"},"2. calc"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#children {\n width: 400px;\n height: 300px;\n position: relative;\n top: calc(50% - 150px);\n left: calc(50% - 200px);\n}\n")),(0,r.kt)("h2",{id:"\u7edd\u5bf9\u5b9a\u4f4d"},"\u7edd\u5bf9\u5b9a\u4f4d"),(0,r.kt)("h3",{id:"1-transform-1"},"1. transform"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n position: relative;\n}\n\n#children {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n")),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n position: relative;\n}\n\n#children {\n width: 400px;\n height: 300px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-200px, -150px);\n}\n")),(0,r.kt)("h3",{id:"2-calc-1"},"2. calc"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n position: relative;\n}\n\n#children {\n width: 400px;\n height: 300px;\n position: absolute;\n top: calc(50% - 150px);\n left: calc(50% - 200px);\n}\n")),(0,r.kt)("h3",{id:"3-\u8d1f\u5916\u8fb9\u8ddd"},"3. \u8d1f\u5916\u8fb9\u8ddd"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n position: relative;\n}\n\n#children {\n width: 400px;\n height: 300px;\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: -150px;\n margin-left: -200px;\n}\n")),(0,r.kt)("h3",{id:"4-\u81ea\u52a8\u5916\u8fb9\u8ddd"},"4. \u81ea\u52a8\u5916\u8fb9\u8ddd"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n position: relative;\n}\n\n#children {\n width: 400px;\n height: 300px;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n}\n")),(0,r.kt)("h2",{id:"table-cell"},"table-cell"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n width: 800px;\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n}\n\n#children {\n display: inline-block;\n}\n")),(0,r.kt)("h2",{id:"line-height"},"line-height"),(0,r.kt)("p",null,"\u524d\u63d0\uff1a\u7236\u5143\u7d20\u9ad8\u5ea6\u56fa\u5b9a"),(0,r.kt)("p",null,"\u9002\u7528\u573a\u666f\uff1a\u5b50\u5143\u7d20\u5bbd\u9ad8\u4e0d\u56fa\u5b9a\u3001\u5b50\u5143\u7d20\u5bbd\u9ad8\u56fa\u5b9a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-css"},"#parent {\n line-height: 600px;\n text-align: center;\n}\n\n#children {\n line-height: 1.5;\n display: inline-block;\n vertical-align: middle;\n}\n")))}d.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/1a4e3797.10deaa27.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! algoliasearch-lite.umd.js | 4.14.3 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ 2 | -------------------------------------------------------------------------------- /assets/js/1be78505.418dd524.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[9514,4972],{19963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>pe});var a=n(67294),o=n(86010),l=n(10833),r=n(35281),i=n(43320),c=n(52802),s=n(74477),d=n(1116),m=n(31735),u=n(95999),b=n(12466),p=n(85936);const h={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),l=(0,a.useRef)(!1),{startScroll:r,cancelScroll:i}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=n?.scrollY;r&&(l.current?l.current=!1:a>=r?(i(),o(!1)):a{e.location.hash&&(l.current=!0,o(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",r.k.common.backToTopButton,h.backToTopButton,e&&h.backToTopButtonShow),type:"button",onClick:t})}var f=n(16550),g=n(87524),v=n(86668),k=n(21327),_=n(87462);function C(e){return a.createElement("svg",(0,_.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const S={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function I(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",S.collapseSidebarButton),onClick:t},a.createElement(C,{className:S.collapseSidebarButtonIcon}))}var N=n(59689),T=n(902);const x=Symbol("EmptyContext"),Z=a.createContext(x);function B(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),l=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return a.createElement(Z.Provider,{value:l},t)}var y=n(86043),w=n(48596),L=n(39960),A=n(72389);function H(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function M(e){let{item:t,onItemClick:n,activePath:l,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,A.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),g=(0,c._F)(t,l),k=(0,w.Mg)(h,l),{collapsed:C,setCollapsed:S}=(0,y.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:I,setExpandedItem:N}=function(){const e=(0,a.useContext)(Z);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),B=function(e){void 0===e&&(e=!C),N(e?null:s),S(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const l=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!l&&n&&o(!1)}),[t,l,n,o])}({isActive:g,collapsed:C,updateCollapsed:B}),(0,a.useEffect)((()=>{b&&null!=I&&I!==s&&E&&S(!0)}),[b,I,s,S,E]),a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":C},p)},a.createElement("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":k})},a.createElement(L.Z,(0,_.Z)({className:(0,o.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{n?.(t),h?B(!1):(e.preventDefault(),B())}:()=>{n?.(t)},"aria-current":k?"page":void 0,"aria-expanded":b?!C:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(H,{categoryLabel:u,onClick:e=>{e.preventDefault(),B()}})),a.createElement(y.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:C},a.createElement(U,{items:m,tabIndex:C?-1:0,onItemClick:n,activePath:l,level:i+1})))}var F=n(13919),P=n(39471);const W={menuExternalLink:"menuExternalLink_NmtK"};function D(e){let{item:t,onItemClick:n,activePath:l,level:i,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,c._F)(t,l),E=(0,F.Z)(m);return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},a.createElement(L.Z,(0,_.Z)({className:(0,o.Z)("menu__link",!E&&W.menuExternalLink,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},E&&{onClick:n?()=>n(t):void 0},d),u,!E&&a.createElement(P.Z,null)))}const R={menuHtmlItem:"menuHtmlItem_M9Kj"};function V(e){let{item:t,level:n,index:l}=e;const{value:i,defaultStyle:c,className:s}=t;return a.createElement("li",{className:(0,o.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),c&&[R.menuHtmlItem,"menu__list-item"],s),key:l,dangerouslySetInnerHTML:{__html:i}})}function j(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(M,(0,_.Z)({item:t},n));case"html":return a.createElement(V,(0,_.Z)({item:t},n));default:return a.createElement(D,(0,_.Z)({item:t},n))}}function z(e){let{items:t,...n}=e;return a.createElement(B,null,t.map(((e,t)=>a.createElement(j,(0,_.Z)({key:t,item:e,index:t},n)))))}const U=(0,a.memo)(z),K={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function q(e){let{path:t,sidebar:n,className:l}=e;const i=function(){const{isActive:e}=(0,N.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{"aria-label":(0,u.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",K.menu,i&&K.menuWithAnnouncementBar,l)},a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:n,activePath:t,level:1})))}const G={sidebar:"sidebar_njMd",sidebarWithHideableNavbar:"sidebarWithHideableNavbar_wUlq",sidebarHidden:"sidebarHidden_VK0M",sidebarLogo:"sidebarLogo_isFc"};function Y(e){let{path:t,sidebar:n,onCollapse:l,isHidden:r}=e;const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:c}}}=(0,v.L)();return a.createElement("div",{className:(0,o.Z)(G.sidebar,i&&G.sidebarWithHideableNavbar,r&&G.sidebarHidden)},i&&a.createElement(k.Z,{tabIndex:-1,className:G.sidebarLogo}),a.createElement(q,{path:t,sidebar:n}),c&&a.createElement(I,{onClick:l}))}const O=a.memo(Y);var X=n(13102),J=n(72961);const Q=e=>{let{sidebar:t,path:n}=e;const l=(0,J.e)();return a.createElement("ul",{className:(0,o.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&l.toggle(),"link"===e.type&&l.toggle()},level:1}))};function $(e){return a.createElement(X.Zo,{component:Q,props:e})}const ee=a.memo($);function te(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,o="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(O,e),o&&a.createElement(ee,e))}const ne={expandButton:"expandButton_m80_",expandButtonIcon:"expandButtonIcon_BlDH"};function ae(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ne.expandButton,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(C,{className:ne.expandButtonIcon}))}const oe={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function le(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:n?.name??"noSidebar"},t)}function re(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:l}=e;const{pathname:i}=(0,f.TH)(),[c,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{c&&s(!1),l((e=>!e))}),[l,c]);return a.createElement("aside",{className:(0,o.Z)(r.k.docs.docSidebarContainer,oe.docSidebarContainer,n&&oe.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(oe.docSidebarContainer)&&n&&s(!0)}},a.createElement(le,null,a.createElement("div",{className:(0,o.Z)(oe.sidebarViewport,c&&oe.sidebarViewportHidden)},a.createElement(te,{sidebar:t,path:i,onCollapse:d,isHidden:c}),c&&a.createElement(ae,{toggleSidebar:d}))))}const ie={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const l=(0,d.V)();return a.createElement("main",{className:(0,o.Z)(ie.docMainContainer,(t||!l)&&ie.docMainContainerEnhanced)},a.createElement("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",ie.docItemWrapper,t&&ie.docItemWrapperEnhanced)},n))}const se={docPage:"docPage__5DB",docsWrapper:"docsWrapper_BCFX"};function de(e){let{children:t}=e;const n=(0,d.V)(),[o,l]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:se.docsWrapper},a.createElement(E,null),a.createElement("div",{className:se.docPage},n&&a.createElement(re,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:l}),a.createElement(ce,{hiddenSidebarContainer:o},t)))}var me=n(4972),ue=n(90197);function be(e){const{versionMetadata:t}=e;return a.createElement(a.Fragment,null,a.createElement(ue.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),a.createElement(l.d,null,t.noIndex&&a.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function pe(e){const{versionMetadata:t}=e,n=(0,c.hI)(e);if(!n)return a.createElement(me.default,null);const{docElement:i,sidebarName:m,sidebarItems:u}=n;return a.createElement(a.Fragment,null,a.createElement(be,e),a.createElement(l.FG,{className:(0,o.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:m,items:u},a.createElement(de,null,i)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(67294),o=n(95999),l=n(10833),r=n(31735);function i(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}},74477:(e,t,n)=>{n.d(t,{E:()=>i,q:()=>r});var a=n(67294),o=n(902);const l=a.createContext(null);function r(e){let{children:t,version:n}=e;return a.createElement(l.Provider,{value:n},t)}function i(){const e=(0,a.useContext)(l);if(null===e)throw new o.i6("DocsVersionProvider");return e}}}]); -------------------------------------------------------------------------------- /assets/js/1f391b9e.a00364fc.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[3085],{14247:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});var l=a(67294),n=a(86010),c=a(10833),r=a(35281),m=a(31735),o=a(70143),i=a(39407);const s={mdxPageWrapper:"mdxPageWrapper_j9I6"};function d(e){const{content:t}=e,{metadata:{title:a,description:d,frontMatter:p}}=t,{wrapperClassName:g,hide_table_of_contents:u}=p;return l.createElement(c.FG,{className:(0,n.Z)(g??r.k.wrapper.mdxPages,r.k.page.mdxPage)},l.createElement(c.d,{title:a,description:d}),l.createElement(m.Z,null,l.createElement("main",{className:"container container--fluid margin-vert--lg"},l.createElement("div",{className:(0,n.Z)("row",s.mdxPageWrapper)},l.createElement("div",{className:(0,n.Z)("col",!u&&"col--8")},l.createElement("article",null,l.createElement(o.Z,null,l.createElement(t,null)))),!u&&t.toc.length>0&&l.createElement("div",{className:"col col--2"},l.createElement(i.Z,{toc:t.toc,minHeadingLevel:p.toc_min_heading_level,maxHeadingLevel:p.toc_max_heading_level}))))))}}}]); -------------------------------------------------------------------------------- /assets/js/230.34dddfc8.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[230],{10230:(e,t,o)=>{o.r(t),o.d(t,{default:()=>p});var a=o(67294),n=o(86010),l=o(95999);const r={popup:"popup_wph0",buttonContainer:"buttonContainer_ox5C"};function p(e){let{onReload:t}=e;const[o,p]=(0,a.useState)(!0);return o&&a.createElement("div",{className:(0,n.Z)("alert","alert--secondary",r.popup)},a.createElement("p",null,a.createElement(l.Z,{id:"theme.PwaReloadPopup.info",description:"The text for PWA reload popup"},"New version available")),a.createElement("div",{className:r.buttonContainer},a.createElement("button",{className:"button button--link",type:"button",onClick:()=>{p(!1),t()}},a.createElement(l.Z,{id:"theme.PwaReloadPopup.refreshButtonText",description:"The text for PWA reload button"},"Refresh")),a.createElement("button",{"aria-label":(0,l.I)({id:"theme.PwaReloadPopup.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of PWA reload popup"}),className:"close",type:"button",onClick:()=>p(!1)},a.createElement("span",{"aria-hidden":"true"},"\xd7"))))}}}]); -------------------------------------------------------------------------------- /assets/js/2384.4861d8b1.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[2384],{75131:(n,e,t)=>{t.r(e),t.d(e,{Workbox:()=>d,WorkboxEvent:()=>u,messageSW:()=>r});try{self["workbox:window:6.5.3"]&&_()}catch(r){}function r(n,e){return new Promise((function(t){var r=new MessageChannel;r.port1.onmessage=function(n){t(n.data)},n.postMessage(e,[r.port2])}))}function o(n,e){for(var t=0;tn.length)&&(e=n.length);for(var t=0,r=new Array(e);t=n.length?{done:!0}:{done:!1,value:n[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=n[Symbol.iterator]()).next.bind(t)}try{self["workbox:core:6.5.3"]&&_()}catch(r){}var s=function(){var n=this;this.promise=new Promise((function(e,t){n.resolve=e,n.reject=t}))};function c(n,e){var t=location.href;return new URL(n,t).href===new URL(e,t).href}var u=function(n,e){this.type=n,Object.assign(this,e)};function f(n,e,t){return t?e?e(n):n:(n&&n.then||(n=Promise.resolve(n)),e?n.then(e):n)}function v(){}var h={type:"SKIP_WAITING"};function l(n,e){if(!e)return n&&n.then?n.then(v):Promise.resolve()}var d=function(n){var e,t;function i(e,t){var r,o;return void 0===t&&(t={}),(r=n.call(this)||this).nn={},r.tn=0,r.rn=new s,r.en=new s,r.on=new s,r.un=0,r.an=new Set,r.cn=function(){var n=r.fn,e=n.installing;r.tn>0||!c(e.scriptURL,r.sn.toString())||performance.now()>r.un+6e4?(r.vn=e,n.removeEventListener("updatefound",r.cn)):(r.hn=e,r.an.add(e),r.rn.resolve(e)),++r.tn,e.addEventListener("statechange",r.ln)},r.ln=function(n){var e=r.fn,t=n.target,o=t.state,i=t===r.vn,a={sw:t,isExternal:i,originalEvent:n};!i&&r.mn&&(a.isUpdate=!0),r.dispatchEvent(new u(o,a)),"installed"===o?r.wn=self.setTimeout((function(){"installed"===o&&e.waiting===t&&r.dispatchEvent(new u("waiting",a))}),200):"activating"===o&&(clearTimeout(r.wn),i||r.en.resolve(t))},r.dn=function(n){var e=r.hn,t=e!==navigator.serviceWorker.controller;r.dispatchEvent(new u("controlling",{isExternal:t,originalEvent:n,sw:e,isUpdate:r.mn})),t||r.on.resolve(e)},r.gn=(o=function(n){var e=n.data,t=n.ports,o=n.source;return f(r.getSW(),(function(){r.an.has(o)&&r.dispatchEvent(new u("message",{data:e,originalEvent:n,ports:t,sw:o}))}))},function(){for(var n=[],e=0;e{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},c="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=p(n),d=o,f=c["".concat(u,".").concat(d)]||c[d]||k[d]||a;return n?r.createElement(f,l(l({ref:t},s),{},{components:n})):r.createElement(f,l({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>k,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var r=n(87462),o=(n(67294),n(3905));const a={sidebar_label:"\u7b97\u6cd5\uff1a\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c k \u4e2a\u7ed3\u70b9",sidebar_position:11},l="\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c k \u5927\u7684\u8282\u70b9",i={unversionedId:"book3/algorithm-binary-tree-k",id:"book3/algorithm-binary-tree-k",title:"\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c k \u5927\u7684\u8282\u70b9",description:"\u9898\u76ee\u63cf\u8ff0",source:"@site/docs/book3/algorithm-binary-tree-k.md",sourceDirName:"book3",slug:"/book3/algorithm-binary-tree-k",permalink:"/awesome-interview/book3/algorithm-binary-tree-k",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{sidebar_label:"\u7b97\u6cd5\uff1a\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c k \u4e2a\u7ed3\u70b9",sidebar_position:11},sidebar:"tutorialSidebar",previous:{title:"\u7f16\u7801\uff1a\u5c06\u5217\u8868\u8fd8\u539f\u4e3a\u6811\u72b6\u7ed3\u6784",permalink:"/awesome-interview/book3/coding-arr-to-tree"},next:{title:"\u7efc\u5408\uff1a\u5982\u4f55\u51cf\u5c11\u767d\u5c4f\u7684\u65f6\u95f4",permalink:"/awesome-interview/book3/topic-white-screen-optimization"}},u={},p=[{value:"\u9898\u76ee\u63cf\u8ff0",id:"\u9898\u76ee\u63cf\u8ff0",level:2},{value:"\u89e3\u9898\u57fa\u672c\u77e5\u8bc6",id:"\u89e3\u9898\u57fa\u672c\u77e5\u8bc6",level:2},{value:"\u89e3\u6cd5\u4e00\uff1a \u9012\u5f52",id:"\u89e3\u6cd5\u4e00-\u9012\u5f52",level:2},{value:"\u590d\u6742\u5ea6\u5206\u6790\uff1a",id:"\u590d\u6742\u5ea6\u5206\u6790",level:3},{value:"\u89e3\u6cd5\u4e8c\uff1a \u8fed\u4ee3",id:"\u89e3\u6cd5\u4e8c-\u8fed\u4ee3",level:2},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],s={toc:p},c="wrapper";function k(e){let{components:t,...n}=e;return(0,o.kt)(c,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c-k-\u5927\u7684\u8282\u70b9"},"\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7b2c k \u5927\u7684\u8282\u70b9"),(0,o.kt)("h2",{id:"\u9898\u76ee\u63cf\u8ff0"},"\u9898\u76ee\u63cf\u8ff0"),(0,o.kt)("p",null,"\u7ed9\u5b9a\u4e00\u68f5\u4e8c\u53c9\u641c\u7d22\u6811\uff0c\u8bf7\u627e\u51fa\u5176\u4e2d\u7b2c k \u5927\u7684\u8282\u70b9\u3002"),(0,o.kt)("p",null,"\u793a\u4f8b 1\uff1a"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"\u8f93\u5165: root = [3,1,4,null,2], k = 1\n 3\n / \\\n 1 4\n \\\n 2\n\u8f93\u51fa: 4\n")),(0,o.kt)("p",null,"\u793a\u4f8b 2\uff1a"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"\u8f93\u5165: root = [5,3,6,2,4,null,null,1], k = 3\n 5\n / \\\n 3 6\n / \\\n 2 4\n /\n 1\n\u8f93\u51fa: 4\n")),(0,o.kt)("h2",{id:"\u89e3\u9898\u57fa\u672c\u77e5\u8bc6"},"\u89e3\u9898\u57fa\u672c\u77e5\u8bc6"),(0,o.kt)("p",null,"\u4e8c\u53c9\u641c\u7d22\u6811\uff08Binary Search Tree\uff09\u53c8\u540d\u4e8c\u53c9\u67e5\u627e\u6811\u3001\u4e8c\u53c9\u6392\u5e8f\u6811\u3002\u5b83\u662f\u4e00\u68f5\u7a7a\u6811\uff0c\u6216\u8005\u662f\u5177\u6709\u4e0b\u5217\u6027\u8d28\u7684\u4e8c\u53c9\u6811\uff1a \u82e5\u5b83\u7684\u5de6\u5b50\u6811\u4e0d\u7a7a\uff0c\u5219\u5de6\u5b50\u6811\u4e0a\u6240\u6709\u7ed3\u70b9\u7684\u503c\u5747\u5c0f\u4e8e\u5b83\u7684\u6839\u7ed3\u70b9\u7684\u503c\uff1b \u82e5\u5b83\u7684\u53f3\u5b50\u6811\u4e0d\u7a7a\uff0c\u5219\u53f3\u5b50\u6811\u4e0a\u6240\u6709\u7ed3\u70b9\u7684\u503c\u5747\u5927\u4e8e\u5b83\u7684\u6839\u7ed3\u70b9\u7684\u503c\uff1b \u5b83\u7684\u5de6\u3001\u53f3\u5b50\u6811\u4e5f\u5206\u522b\u4e3a\u4e8c\u53c9\u6392\u5e8f\u6811\u3002"),(0,o.kt)("h2",{id:"\u89e3\u6cd5\u4e00-\u9012\u5f52"},"\u89e3\u6cd5\u4e00\uff1a \u9012\u5f52"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/erchasousuoshudedi-k-dadejiedian-vfpbh?file=/index.html"},"\u5728\u7ebf\u94fe\u63a5")),(0,o.kt)("p",null,"\u5229\u7528\u4e8c\u53c9\u641c\u7d22\u6811\u7684\u7279\u6027\u8fdb\u884c\u4e2d\u5e8f\u904d\u5386\u3002\u5148\u904d\u5386\u5de6\u8282\u70b9\uff0c\u7136\u540e\u6839\u8282\u70b9\uff0c\u6700\u540e\u904d\u5386\u53f3\u8282\u70b9\uff0c\u5f97\u5230\u7684\u662f\u4e00\u4e2a\u9012\u589e\u5e8f\u5217\uff0c\u90a3\u4e48\u5e8f\u5217\u7684\u5012\u5e8f\u4e3a\u9012\u51cf\u5e8f\u5217\u3002\u56e0\u6b64\u8fd9\u9053\u9898\u6211\u4eec\u53ef\u4ee5\u8f6c\u53d8\u4e3a\u6c42\u4e8c\u53c9\u641c\u7d22\u6811\u4e2d\u5e8f\u904d\u5386\u5012\u5e8f\u7684\u7b2c k \u4e2a\u6570\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/15681693/130164388-85e96093-9336-4174-b139-59e83d972a20.png",alt:"\u89e3\u6cd5\u56fe\u793a"})),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @param {number} k\n * @return {number}\n */\nconst kthLargest = (root, k) => {\n let res = null; // \u521d\u59cb\u5316\u8fd4\u56de\u503c\n // \u56e0\u4e3a\u9700\u8981\u5012\u5e8f\u7b2c k \u4e2a\uff0c\u6240\u4ee5\u5904\u7406\u662f\u53f3\u8282\u70b9\uff0c\u6839\u8282\u70b9\uff0c\u7136\u540e\u5de6\u8282\u70b9\n const dfs = (root) => {\n if (!root) return; // \u5982\u679c\u5f53\u524d\u8282\u70b9\u4e3a null\uff0c\u672c\u8f6e\u5904\u7406\u7ed3\u675f\n dfs(root.right); // \u5f00\u59cb\u5904\u7406\u53f3\u8282\u70b9\n if (k === 0) return; // k \u503c \u4e3a 0\uff0c\u4ee3\u8868\u5df2\u7ecf\u5904\u7406\u7684\u8282\u70b9\u8d85\u8fc7\u76ee\u6807\u8282\u70b9\uff0c\u672c\u8f6e\u5904\u7406\u7ed3\u675f\n if (--k === 0) {\n // \u5f53 k \u503c \u51cf 1 \u4e3a 0\uff0c\u8868\u793a\u5df2\u7ecf\u5230\u4e86\u6211\u4eec\u60f3\u8981\u7684 k \u5927 \u8282\u70b9\uff0c\u4fdd\u5b58\u5f53\u524d\u503c\n res = root.val;\n }\n dfs(root.left); // \u5904\u7406\u5de6\u8282\u70b9\n };\n dfs(root); // \u4ece\u521d\u59cb\u5316\u8282\u70b9\u5f00\u59cb\u5904\u7406\n return res;\n};\n")),(0,o.kt)("h3",{id:"\u590d\u6742\u5ea6\u5206\u6790"},"\u590d\u6742\u5ea6\u5206\u6790\uff1a"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u65e0\u8bba k \u7684\u503c\u5927\u5c0f\uff0c\u9012\u5f52\u6df1\u5ea6\u90fd\u4e3a N\uff0c\u5360\u7528 O(N) \u65f6\u95f4\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u65e0\u8bba k \u7684\u503c\u5927\u5c0f\uff0c\u9012\u5f52\u6df1\u5ea6\u90fd\u4e3a N\uff0c\u5360\u7528 O(N) \u7a7a\u95f4\u3002")),(0,o.kt)("h2",{id:"\u89e3\u6cd5\u4e8c-\u8fed\u4ee3"},"\u89e3\u6cd5\u4e8c\uff1a \u8fed\u4ee3"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/hzfe-suan-fa-er-cha-sou-suo-shu-de-di-k-da-de-jie-dian-die-dai-kq565?file=/index.html"},"\u5728\u7ebf\u94fe\u63a5")),(0,o.kt)("p",null,"\u601d\u8def\u8fd8\u662f\u4e8c\u53c9\u6811\u7684\u4e2d\u5e8f\u904d\u5386\uff0c\u5229\u7528\u6808\u7684\u65b9\u5f0f\u8fdb\u884c\u904d\u5386\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/15681693/137573367-0855a00c-7406-4837-86d4-38d73f9c7bb7.png",alt:"\u89e3\u6cd5\u56fe\u793a"})),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for a binary tree node.\n * function TreeNode(val) {\n * this.val = val;\n * this.left = this.right = null;\n * }\n */\n/**\n * @param {TreeNode} root\n * @param {number} k\n * @return {number}\n */\nvar kthLargest = function (root, k) {\n if (!root) return 0;\n // \u58f0\u660e\u50a8\u5b58\u6808\n const stack = [];\n // \u5224\u65ad\u5f53\u524d\u6808\u5426\u6709\u8282\u70b9\u548c\u5f53\u524d\u904d\u5386\u8282\u70b9\u4f4d\u7f6e\n while (stack.length || root) {\n while (root) {\n // \u5f80\u6808\u91cc\u6dfb\u52a0\u5f53\u524d\u8282\u70b9\uff0c\u540c\u65f6\u5207\u6362\u4e3a\u53f3\u8282\u70b9\u5904\u7406\n stack.push(root);\n root = root.right;\n }\n // \u53d6\u51fa\u5f53\u524d\u6808\u9876\u5143\u7d20\uff0c\u6839\u636e\u6dfb\u52a0\u7684\u987a\u5e8f\uff0c\u5f53\u524d\u5143\u7d20\u662f\u6808\u5185\u6700\u5927\u7684\n const cur = stack.pop();\n k--;\n if (k === 0) return cur.val;\n // \u5207\u6362\u4e3a\u5de6\u8282\u70b9\u5904\u7406\n root = cur.left;\n }\n return 0;\n};\n")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u9700\u8981\u904d\u5386\u6574\u68f5\u6811\u4e00\u6b21\uff0c\u590d\u6742\u5ea6\u4e3a O(N)"),(0,o.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u9700\u8981\u989d\u5916\u7a7a\u95f4\u6808\u8fdb\u884c\u50a8\u5b58\u6811\uff0c\u590d\u6742\u5ea6\u4e3a O(N)")),(0,o.kt)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"https://book.douban.com/subject/6966465/"},"\u5251\u6307 offer"))))}k.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/4972.bea3865f.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[4972],{4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>i});var a=n(67294),o=n(95999),l=n(10833),r=n(31735);function i(){return a.createElement(a.Fragment,null,a.createElement(l.d,{title:(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); -------------------------------------------------------------------------------- /assets/js/4f33924b.6c95a067.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[8711],{15745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); -------------------------------------------------------------------------------- /assets/js/5283.79fe536c.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[5283],{65283:(e,n,t)=>{t.r(n),t.d(n,{renderReloadPopup:()=>a});var o=t(67294),d=t(73935);const r="pwa-popup-container",c=()=>document.getElementById(r),u=()=>{const e=document.createElement("div");return e.id=r,document.body.appendChild(e),e};function a(e){const n=c()??u();return Promise.all([t.e(532),t.e(230)]).then(t.bind(t,10230)).then((t=>{let{default:r}=t;d.render(o.createElement(r,e),n)}))}}}]); -------------------------------------------------------------------------------- /assets/js/5cddde15.3da6324e.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[9429],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=c(r),f=o,b=u["".concat(p,".").concat(f)]||u[f]||m[f]||a;return r?n.createElement(b,l(l({ref:t},s),{},{components:r})):n.createElement(b,l({ref:t},s))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_label:"\u57fa\u7840\uff1aNew \u64cd\u4f5c\u7b26\u7684\u539f\u7406",sidebar_position:7},l="New \u64cd\u4f5c\u7b26\u7684\u539f\u7406",i={unversionedId:"book2/js-new",id:"book2/js-new",title:"New \u64cd\u4f5c\u7b26\u7684\u539f\u7406",description:"\u76f8\u5173\u95ee\u9898",source:"@site/docs/book2/js-new.md",sourceDirName:"book2",slug:"/book2/js-new",permalink:"/awesome-interview/book2/js-new",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_label:"\u57fa\u7840\uff1aNew \u64cd\u4f5c\u7b26\u7684\u539f\u7406",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"\u57fa\u7840\uff1aES5\u3001ES6 \u5982\u4f55\u5b9e\u73b0\u7ee7\u627f",permalink:"/awesome-interview/book2/js-inherite"},next:{title:"\u6837\u5f0f\uff1a\u8c08\u8c08 CSS \u9884\u5904\u7406\u5668",permalink:"/awesome-interview/book2/css-preprocessor"}},p={},c=[{value:"\u76f8\u5173\u95ee\u9898",id:"\u76f8\u5173\u95ee\u9898",level:2},{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. new \u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48",id:"1-new-\u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48",level:3},{value:"2. new \u64cd\u4f5c\u7b26\u7684\u6a21\u62df\u5b9e\u73b0",id:"2-new-\u64cd\u4f5c\u7b26\u7684\u6a21\u62df\u5b9e\u73b0",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],s={toc:c},u="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"new-\u64cd\u4f5c\u7b26\u7684\u539f\u7406"},"New \u64cd\u4f5c\u7b26\u7684\u539f\u7406"),(0,o.kt)("h2",{id:"\u76f8\u5173\u95ee\u9898"},"\u76f8\u5173\u95ee\u9898"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"new \u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48"),(0,o.kt)("li",{parentName:"ul"},"new \u64cd\u4f5c\u7b26\u7684\u6a21\u62df\u5b9e\u73b0")),(0,o.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"\u6784\u9020\u51fd\u6570")," ",(0,o.kt)("inlineCode",{parentName:"p"},"\u5bf9\u8c61\u5b9e\u4f8b")),(0,o.kt)("p",null,"new \u64cd\u4f5c\u7b26\u901a\u8fc7\u6267\u884c\u81ea\u5b9a\u4e49\u6784\u9020\u51fd\u6570\u6216\u5185\u7f6e\u5bf9\u8c61\u6784\u9020\u51fd\u6570\uff0c\u751f\u6210\u5bf9\u5e94\u7684\u5bf9\u8c61\u5b9e\u4f8b\u3002"),(0,o.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,o.kt)("h3",{id:"1-new-\u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48"},"1. new \u64cd\u4f5c\u7b26\u505a\u4e86\u4ec0\u4e48"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u5728\u5185\u5b58\u4e2d\u521b\u5efa\u4e00\u4e2a\u65b0\u5bf9\u8c61\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u5c06\u65b0\u5bf9\u8c61\u5185\u90e8\u7684 ","_","_","proto","_","_"," \u8d4b\u503c\u4e3a\u6784\u9020\u51fd\u6570\u7684 prototype \u5c5e\u6027\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u5c06\u6784\u9020\u51fd\u6570\u5185\u90e8\u7684 this \u88ab\u8d4b\u503c\u4e3a\u65b0\u5bf9\u8c61\uff08\u5373 this \u6307\u5411\u65b0\u5bf9\u8c61\uff09\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u6267\u884c\u6784\u9020\u51fd\u6570\u5185\u90e8\u7684\u4ee3\u7801\uff08\u7ed9\u65b0\u5bf9\u8c61\u6dfb\u52a0\u5c5e\u6027\uff09\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u5982\u679c\u6784\u9020\u51fd\u6570\u8fd4\u56de\u975e\u7a7a\u5bf9\u8c61\uff0c\u5219\u8fd4\u56de\u8be5\u5bf9\u8c61\u3002\u5426\u5219\u8fd4\u56de this\u3002")),(0,o.kt)("h3",{id:"2-new-\u64cd\u4f5c\u7b26\u7684\u6a21\u62df\u5b9e\u73b0"},"2. new \u64cd\u4f5c\u7b26\u7684\u6a21\u62df\u5b9e\u73b0"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-js"},'function fakeNew() {\n // \u521b\u5efa\u65b0\u5bf9\u8c61\n var obj = Object.create(null);\n var Constructor = [].shift.call(arguments);\n // \u5c06\u5bf9\u8c61\u7684 __proto__ \u8d4b\u503c\u4e3a\u6784\u9020\u51fd\u6570\u7684 prototype \u5c5e\u6027\n obj.__proto__ = Constructor.prototype;\n // \u5c06\u6784\u9020\u51fd\u6570\u5185\u90e8\u7684 this \u8d4b\u503c\u4e3a\u65b0\u5bf9\u8c61\n var ret = Constructor.apply(obj, arguments);\n // \u8fd4\u56de\u65b0\u5bf9\u8c61\n return typeof ret === "object" && ret !== null ? ret : obj;\n}\n\nfunction Group(name, member) {\n this.name = name;\n this.member = member;\n}\n\nvar group = fakeNew(Group, "hzfe", 17);\n')),(0,o.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/new"},"new \u64cd\u4f5c\u7b26 - MDN")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("a",{parentName:"li",href:"https://262.ecma-international.org/5.1/#sec-11.2.2"},"The new Operator"))))}m.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/6511.4f41f0a7.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[6511],{66511:(k,e,s)=>{s.r(e)}}]); -------------------------------------------------------------------------------- /assets/js/6b1ae1c5.73c2607f.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[6015],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>k});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,k=c["".concat(p,".").concat(m)]||c[m]||d[m]||l;return n?r.createElement(k,i(i({ref:t},s),{},{components:n})):r.createElement(k,i({ref:t},s))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=n(87462),a=(n(67294),n(3905));const l={sidebar_label:"\u7b97\u6cd5\uff1a\u53cd\u8f6c\u94fe\u8868",sidebar_position:11},i="\u53cd\u8f6c\u94fe\u8868",o={unversionedId:"book2/algorithm-reverse-linked-list",id:"book2/algorithm-reverse-linked-list",title:"\u53cd\u8f6c\u94fe\u8868",description:"\u9898\u76ee\u63cf\u8ff0",source:"@site/docs/book2/algorithm-reverse-linked-list.md",sourceDirName:"book2",slug:"/book2/algorithm-reverse-linked-list",permalink:"/awesome-interview/book2/algorithm-reverse-linked-list",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{sidebar_label:"\u7b97\u6cd5\uff1a\u53cd\u8f6c\u94fe\u8868",sidebar_position:11},sidebar:"tutorialSidebar",previous:{title:"\u7f16\u7801\uff1a\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570",permalink:"/awesome-interview/book2/coding-throttle-debounce"},next:{title:"\u7efc\u5408\uff1a\u591a\u56fe\u7ad9\u70b9\u6027\u80fd\u4f18\u5316",permalink:"/awesome-interview/book2/topic-multi-pics-site-optimize"}},p={},u=[{value:"\u9898\u76ee\u63cf\u8ff0",id:"\u9898\u76ee\u63cf\u8ff0",level:2},{value:"\u89e3\u6cd5\u4e00\uff1a\u8fed\u4ee3\uff08\u53cc\u6307\u9488\uff09",id:"\u89e3\u6cd5\u4e00\u8fed\u4ee3\u53cc\u6307\u9488",level:2},{value:"\u590d\u6742\u5ea6\u5206\u6790",id:"\u590d\u6742\u5ea6\u5206\u6790",level:3},{value:"\u89e3\u6cd5\u4e8c\uff1a\u9012\u5f52",id:"\u89e3\u6cd5\u4e8c\u9012\u5f52",level:2},{value:"\u590d\u6742\u5ea6\u5206\u6790\uff1a",id:"\u590d\u6742\u5ea6\u5206\u6790-1",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],s={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u53cd\u8f6c\u94fe\u8868"},"\u53cd\u8f6c\u94fe\u8868"),(0,a.kt)("h2",{id:"\u9898\u76ee\u63cf\u8ff0"},"\u9898\u76ee\u63cf\u8ff0"),(0,a.kt)("p",null,"\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570\uff0c\u8f93\u5165\u4e00\u4e2a\u94fe\u8868\u7684\u5934\u8282\u70b9\uff0c\u53cd\u8f6c\u8be5\u94fe\u8868\u5e76\u8f93\u51fa\u53cd\u8f6c\u540e\u94fe\u8868\u7684\u5934\u8282\u70b9\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/15681693/137571934-63ebc223-0a1f-4cf5-8217-1a4644aff2e3.png",alt:"\u53cd\u8f6c\u94fe\u8868"})),(0,a.kt)("p",null,"\u793a\u4f8b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"\n\u8f93\u5165: 1->2->3->4->5->NULL\n\u8f93\u51fa: 5->4->3->2->1->NULL\n\n")),(0,a.kt)("h2",{id:"\u89e3\u6cd5\u4e00\u8fed\u4ee3\u53cc\u6307\u9488"},"\u89e3\u6cd5\u4e00\uff1a\u8fed\u4ee3\uff08\u53cc\u6307\u9488\uff09"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/hzfe-suanfa-omcjw?file=/index.html"},"\u5728\u7ebf\u94fe\u63a5")),(0,a.kt)("p",null,"\u672c\u65b9\u6cd5\u662f\u5bf9\u94fe\u8868\u8fdb\u884c\u904d\u5386\uff0c\u7136\u540e\u5728\u8bbf\u95ee\u5404\u8282\u70b9\u65f6\u4fee\u6539 next \u7684\u6307\u5411\uff0c\u8fbe\u5230\u53cd\u8f6c\u94fe\u8868\u7684\u76ee\u7684\u3002"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u521d\u59cb\u5316 cur \u548c pre \u4e24\u4e2a\u8282\u70b9\uff0c\u5206\u522b\u6307\u5411 head \u548c null\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5bf9\u94fe\u8868\u8fdb\u884c\u5faa\u73af\uff0c\u58f0\u660e temp \u8282\u70b9\u7528\u6765\u4fdd\u5b58\u5f53\u524d\u8282\u70b9\u7684\u4e0b\u4e00\u4e2a\u8282\u70b9\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4fee\u6539\u5f53\u524d\u8282\u70b9 cur \u7684 next \u6307\u9488\u6307\u5411\u4e3a pre \u8282\u70b9\u3002"),(0,a.kt)("li",{parentName:"ol"},"pre \u8282\u70b9\u4fee\u6539\u4e3a cur \u8282\u70b9\u3002"),(0,a.kt)("li",{parentName:"ol"},"cur \u8282\u70b9\u4fee\u6539\u4e3a temp \u8282\u70b9\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u7ee7\u7eed\u8fdb\u884c\u5904\u7406\uff0c\u76f4\u5230 cur \u8282\u70b9\u4e3a null\uff0c\u8fd4\u56de pre \u8282\u70b9\u3002")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nconst reverseList = (head) => {\n let cur = head; // \u6b63\u5411\u94fe\u8868\u7684\u5934\u6307\u9488\n let pre = null; // \u53cd\u5411\u94fe\u8868\u7684\u5934\u6307\u9488\n while (cur) {\n const temp = cur.next; // \u6682\u5b58\u5f53\u524d\u8282\u70b9\u7684\u540e\u7eed\u8282\u70b9\uff0c\u7528\u4e8e\u66f4\u65b0\u6b63\u5411\u94fe\u8868\n cur.next = pre; // \u5c06\u5f53\u524d\u8282\u70b9\u6307\u5411\u53cd\u5411\u94fe\u8868\uff0c\u8fd9\u662f\u4e00\u4e2a\u5efa\u7acb\u53cd\u5411\u94fe\u63a5\u7684\u8fc7\u7a0b\n pre = cur; // \u66f4\u65b0\u53cd\u5411\u94fe\u8868\u7684\u5934\u6307\u9488\u4e3a\u5f53\u524d\u5df2\u5904\u7406\u7684\u8282\u70b9\uff0c\u53cd\u5411\u94fe\u8868\u7684\u8be5\u8f6e\u6784\u5efa\u5b8c\u6210\n cur = temp; // \u5c06\u6b63\u5411\u94fe\u8868\u5934\u6307\u9488\u66ff\u6362\u4e3a\u6682\u5b58\u7684\u8282\u70b9\uff0c\u6b63\u5411\u94fe\u8868\u5904\u7406\u5b8c\u6210\uff0c\u5f00\u59cb\u4e0b\u4e00\u8f6e\u5904\u7406\n }\n return pre;\n};\n")),(0,a.kt)("h3",{id:"\u590d\u6742\u5ea6\u5206\u6790"},"\u590d\u6742\u5ea6\u5206\u6790"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u904d\u5386\u94fe\u8868\u4f7f\u7528\u7ebf\u6027\u5927\u5c0f\u65f6\u95f4\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(1)\uff1a\u53d8\u91cf pre \u548c cur \u4f7f\u7528\u5e38\u6570\u5927\u5c0f\u989d\u5916\u7a7a\u95f4\u3002")),(0,a.kt)("h2",{id:"\u89e3\u6cd5\u4e8c\u9012\u5f52"},"\u89e3\u6cd5\u4e8c\uff1a\u9012\u5f52"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/hzfe-suan-fa-fan-zhuan-lian-biao-di-gui-fa-forked-my3i4"},"\u5728\u7ebf\u94fe\u63a5")),(0,a.kt)("p",null,"\u5f53\u4f7f\u7528\u9012\u5f52\u5bf9\u94fe\u8868\u8fdb\u884c\u5904\u7406\u65f6\uff0c\u4ece\u94fe\u8868\u7684\u7b2c\u4e00\u4e2a\u8282\u70b9\u51fa\u53d1\uff0c\u7136\u540e\u627e\u5230\u6700\u540e\u4e00\u4e2a\u8282\u70b9\uff0c\u8be5\u8282\u70b9\u5c31\u662f\u53cd\u8f6c\u94fe\u8868\u7684\u5934\u7ed3\u70b9\uff0c\u7136\u540e\u8fdb\u884c\u56de\u6eaf\u5904\u7406\u3002"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u521d\u59cb\u94fe\u8868\u7684\u5934\u7ed3\u70b9\uff0chead \u6807\u8bc6\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c head \u4e3a\u7a7a\u6216\u8005 head.next \u4e3a\u7a7a\uff0c\u8fd4\u56de head\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5b9a\u4e49 reverseHead \u8282\u70b9\uff0c\u4fdd\u5b58\u53cd\u8f6c\u7684\u94fe\u8868\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u6bcf\u6b21\u8ba9 head \u4e0b\u4e00\u4e2a\u8282\u70b9\u7684 next \u6307\u5411 head\uff0c\u5f62\u6210\u53cd\u8f6c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u9012\u5f52\u5904\u7406\u5230\u6700\u540e\u4e00\u4e2a\u8282\u70b9\uff0c\u8fd4\u56de reverseHead\u3002")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for singly-linked list.\n * function ListNode(val) {\n * this.val = val;\n * this.next = null;\n * }\n */\n/**\n * @param {ListNode} head\n * @return {ListNode}\n */\nconst reverseList = (head) => {\n // \u5224\u65ad\u5f53\u524d\u8282\u70b9\u662f\u5426\u8fd8\u9700\u8981\u5904\u7406\n if (head == null || head.next == null) {\n return head;\n }\n // \u9012\u5f52\u5904\u7406\u540e\u7eed\u8282\u70b9\n const reverseHead = reverseList(head.next);\n // \u5c40\u90e8\u53cd\u8f6c\u8282\u70b9\n head.next.next = head;\n head.next = null;\n return reverseHead;\n};\n")),(0,a.kt)("h3",{id:"\u590d\u6742\u5ea6\u5206\u6790-1"},"\u590d\u6742\u5ea6\u5206\u6790\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1an \u662f\u94fe\u8868\u7684\u957f\u5ea6\uff0c\u9700\u8981\u5bf9\u94fe\u8868\u7684\u6bcf\u4e2a\u8282\u70b9\u8fdb\u884c\u53cd\u8f6c\u64cd\u4f5c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(N)\uff1an \u662f\u94fe\u8868\u7684\u957f\u5ea6\uff0c\u7a7a\u95f4\u590d\u6742\u5ea6\u4e3b\u8981\u53d6\u51b3\u4e8e\u9012\u5f52\u8c03\u7528\u7684\u6808\u7a7a\u95f4\uff0c\u6700\u591a\u4e3a n \u5c42\u3002")),(0,a.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://book.douban.com/subject/6966465/"},"\u5251\u6307 offer"))))}d.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/7c39e10e.72217821.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[5582],{3905:(e,t,n)=>{n.d(t,{Zo:()=>o,kt:()=>m});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},o=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},f="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,p=e.originalType,c=e.parentName,o=l(e,["components","mdxType","originalType","parentName"]),f=s(n),u=a,m=f["".concat(c,".").concat(u)]||f[u]||y[u]||p;return n?r.createElement(m,i(i({ref:t},o),{},{components:n})):r.createElement(m,i({ref:t},o))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=n.length,i=new Array(p);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[f]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>p,metadata:()=>l,toc:()=>s});var r=n(87462),a=(n(67294),n(3905));const p={sidebar_label:"\u57fa\u7840\uff1aTypeScript \u4e2d\u7684 Interface \u548c Type Alias",sidebar_position:7},i="TypeScript \u4e2d\u7684 Interface \u548c Type Alias",l={unversionedId:"book3/js-ts-interface-type",id:"book3/js-ts-interface-type",title:"TypeScript \u4e2d\u7684 Interface \u548c Type Alias",description:"\u76f8\u5173\u95ee\u9898",source:"@site/docs/book3/js-ts-interface-type.md",sourceDirName:"book3",slug:"/book3/js-ts-interface-type",permalink:"/awesome-interview/book3/js-ts-interface-type",draft:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_label:"\u57fa\u7840\uff1aTypeScript \u4e2d\u7684 Interface \u548c Type Alias",sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"\u57fa\u7840\uff1aJavaScript \u5f02\u6b65\u7f16\u7a0b",permalink:"/awesome-interview/book3/js-async"},next:{title:"\u6837\u5f0f\uff1a\u79fb\u52a8\u7aef\u81ea\u9002\u5e94\u7684\u5e38\u89c1\u624b\u6bb5",permalink:"/awesome-interview/book3/css-mobile-adaptive"}},c={},s=[{value:"\u76f8\u5173\u95ee\u9898",id:"\u76f8\u5173\u95ee\u9898",level:2},{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. Interface \u548c Type \u7684\u76f8\u540c\u70b9",id:"1-interface-\u548c-type-\u7684\u76f8\u540c\u70b9",level:3},{value:"1.1 \u53ef\u63cf\u8ff0\u5bf9\u8c61/\u51fd\u6570",id:"11-\u53ef\u63cf\u8ff0\u5bf9\u8c61\u51fd\u6570",level:4},{value:"1.2 \u53ef\u6269\u5c55",id:"12-\u53ef\u6269\u5c55",level:4},{value:"1.3 class Implements",id:"13-class-implements",level:4},{value:"2. Interface \u548c Type \u7684\u4e0d\u540c\u70b9",id:"2-interface-\u548c-type-\u7684\u4e0d\u540c\u70b9",level:3},{value:"2.1 \u57fa\u672c\u7c7b\u578b\u522b\u540d\u3001\u8054\u5408\u7c7b\u578b\u3001\u5143\u7ec4",id:"21-\u57fa\u672c\u7c7b\u578b\u522b\u540d\u8054\u5408\u7c7b\u578b\u5143\u7ec4",level:4},{value:"2.2 \u58f0\u660e\u5408\u5e76",id:"22-\u58f0\u660e\u5408\u5e76",level:4},{value:"2.3 \u52a8\u6001\u5c5e\u6027",id:"23-\u52a8\u6001\u5c5e\u6027",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],o={toc:s},f="wrapper";function y(e){let{components:t,...n}=e;return(0,a.kt)(f,(0,r.Z)({},o,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"typescript-\u4e2d\u7684-interface-\u548c-type-alias"},"TypeScript \u4e2d\u7684 Interface \u548c Type Alias"),(0,a.kt)("h2",{id:"\u76f8\u5173\u95ee\u9898"},"\u76f8\u5173\u95ee\u9898"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Interface \u548c Type Alias \u7684\u4f5c\u7528"),(0,a.kt)("li",{parentName:"ul"},"Interface \u548c Type Alias \u7684\u76f8\u540c\u70b9"),(0,a.kt)("li",{parentName:"ul"},"Interface \u548c Type Alias \u7684\u533a\u522b")),(0,a.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"\u7c7b\u578b\u7ea6\u675f")," ",(0,a.kt)("inlineCode",{parentName:"p"},"\u6269\u5c55")," ",(0,a.kt)("inlineCode",{parentName:"p"},"\u7c7b\u578b\u5408\u5e76")),(0,a.kt)("p",null,"Interface \u548c Type Alias\uff08Type \u522b\u540d\uff0c\u4e0b\u6587\u7b80\u79f0 Type\uff09\u662f TypeScript \u4e2d\u4e24\u4e2a\u975e\u5e38\u91cd\u8981\u4e14\u5e38\u7528\u7684\u6982\u5ff5\u3002\u5728\u7a0b\u5e8f\u8bbe\u8ba1\u4e2d\uff0cInterface \u548c Type \u4e3b\u8981\u8d77\u5230\u7c7b\u578b\u7684\u9650\u5236\u548c\u89c4\u8303\u7684\u4f5c\u7528\uff0c\u5b83\u4eec\u4e0d\u5173\u5fc3\u5b9e\u73b0\u7ec6\u8282\uff0c\u53ea\u89c4\u5b9a\u548c\u9650\u5236\u7c7b\u6216\u53d8\u91cf\u5fc5\u987b\u63d0\u4f9b\u5bf9\u5e94\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u3002"),(0,a.kt)("p",null,"Interface \u548c Type \u6838\u5fc3\u7684\u533a\u522b\u662f Type \u4e0d\u53ef\u5728\u5b9a\u4e49\u540e\u91cd\u65b0\u6dfb\u52a0\u5185\u5bb9\uff0c\u800c Interface \u5219\u603b\u662f\u53ef\u4ee5\u6269\u5c55\u65b0\u5185\u5bb9\u3002\u76f8\u6bd4 Interface\uff0cType \u5e76\u6ca1\u6709\u5b9e\u9645\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u7c7b\u578b\uff0c\u800c\u662f\u521b\u5efa\u4e00\u4e2a\u5f15\u7528\u67d0\u4e2a\u7c7b\u578b\u7684\u540d\u5b57\u3002"),(0,a.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,a.kt)("p",null,"\u603b\u4f53\u6765\u8bf4\uff0cInterface \u548c Type \u4e24\u8005\u975e\u5e38\u76f8\u4f3c\uff0cInterface \u7684\u7279\u6027\u5927\u90e8\u5206\u90fd\u53ef\u4ee5\u4f7f\u7528 Type \u5b9e\u73b0\uff0c\u5728\u5927\u591a\u6570\u573a\u666f\u4e0b\u90fd\u53ef\u4ee5\u4efb\u610f\u9009\u62e9 Interface \u6216 Type \u5b9e\u73b0\u529f\u80fd\u3002\u6839\u636e\u8fd9\u4e24\u8005\u8bbe\u8ba1\u4e0a\u7684\u5f02\u540c\uff0c\u53ef\u4ee5\u603b\u7ed3\u51fa\u4e24\u8005\u4f7f\u7528\u4e0a\u7684\u76f8\u540c\u70b9\u548c\u4e0d\u540c\u70b9\u3002"),(0,a.kt)("h3",{id:"1-interface-\u548c-type-\u7684\u76f8\u540c\u70b9"},"1. Interface \u548c Type \u7684\u76f8\u540c\u70b9"),(0,a.kt)("h4",{id:"11-\u53ef\u63cf\u8ff0\u5bf9\u8c61\u51fd\u6570"},"1.1 \u53ef\u63cf\u8ff0\u5bf9\u8c61/\u51fd\u6570"),(0,a.kt)("p",null,"Interface \u548c Type \u90fd\u53ef\u4ee5\u63cf\u8ff0\u5bf9\u8c61\u548c\u51fd\u6570\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"// Interface\ninterface IHzfe {\n name: string;\n}\ninterface GetHZFE {\n (): string;\n}\n\n// Type\ntype THzfe = {\n name: string;\n};\ntype GetHZFE = () => string;\n")),(0,a.kt)("h4",{id:"12-\u53ef\u6269\u5c55"},"1.2 \u53ef\u6269\u5c55"),(0,a.kt)("p",null,"Interface \u548c Type \u90fd\u53ef\u4ee5\u6269\u5c55\u7c7b\u578b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"// Interface\ninterface IHzfe {\n name: string;\n}\ninterface IShfe extends IHzfe {\n location: string;\n}\n\n// Type\ntype THzfe = {\n name: string;\n};\ntype TShfe = THzfe & { location: string };\n")),(0,a.kt)("p",null,"\u53e6\u5916\uff0cInterface \u7684 extends \u548c Type \u7684\u4ea4\u53c9\u7c7b\u578b\u6709\u4e00\u4e9b\u7ec6\u5fae\u533a\u522b\uff1aextends \u4e2d\u7684\u540c\u540d\u5b57\u6bb5\u7684\u7c7b\u578b\u5fc5\u987b\u662f\u517c\u5bb9\u7684\u3002\u800c\u4ea4\u53c9\u7c7b\u578b\u4e2d\u51fa\u73b0\u4e86\u540c\u540d\u5b57\u6bb5\u4e14\u7c7b\u578b\u4e0d\u540c\u65f6\uff0c\u5219\u7c7b\u578b\u4e00\u822c\u662f never\u3002"),(0,a.kt)("h4",{id:"13-class-implements"},"1.3 class Implements"),(0,a.kt)("p",null,"Interface \u548c Type \u63cf\u8ff0\u7684\u7c7b\u578b\u90fd\u53ef\u4ee5\u88ab class \u5b9e\u73b0\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},'// Interface\ninterface IHzfe {\n name: string;\n}\n\n// Type\ntype THzfe = {\n name: string;\n};\n\nclass HZFE1 implements IHzfe {\n name = "HZFEStudio";\n}\nclass HZFE2 implements THzfe {\n name = "HZFEStudio";\n}\n')),(0,a.kt)("h3",{id:"2-interface-\u548c-type-\u7684\u4e0d\u540c\u70b9"},"2. Interface \u548c Type \u7684\u4e0d\u540c\u70b9"),(0,a.kt)("h4",{id:"21-\u57fa\u672c\u7c7b\u578b\u522b\u540d\u8054\u5408\u7c7b\u578b\u5143\u7ec4"},"2.1 \u57fa\u672c\u7c7b\u578b\u522b\u540d\u3001\u8054\u5408\u7c7b\u578b\u3001\u5143\u7ec4"),(0,a.kt)("p",null,"\u7531\u4e8e Type \u5b9a\u4e49\u7684\u5b9e\u9645\u662f\u4e00\u4e2a\u522b\u540d\uff0c\u6240\u4ee5 Type \u53ef\u4ee5\u63cf\u8ff0\u4e00\u4e9b\u57fa\u672c\u7c7b\u578b\u3001\u8054\u5408\u7c7b\u578b\u548c\u5143\u7ec4\u7684\u522b\u540d\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},"// \u57fa\u672c\u7c7b\u578b\ntype HZFEMember = number;\n\n// \u8054\u5408\u7c7b\u578b\ntype HZFEMemberTechStack = string | string[];\n\n// \u5143\u7ec4\ntype HZFEMember = [number, string];\n")),(0,a.kt)("h4",{id:"22-\u58f0\u660e\u5408\u5e76"},"2.2 \u58f0\u660e\u5408\u5e76"),(0,a.kt)("p",null,"Interface \u53ef\u4ee5\u91cd\u590d\u5b9a\u4e49\uff0c\u5e76\u5c06\u5408\u5e76\u6240\u6709\u58f0\u660e\u7684\u5c5e\u6027\u4e3a\u5355\u4e2a\u63a5\u53e3\u3002\u800c Type \u4e0d\u53ef\u91cd\u590d\u5b9a\u4e49\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},'// Interface\ninterface IHzfe {\n name: string;\n}\ninterface IHzfe {\n member: number;\n}\n\nconst hzfe: IHzfe = { name: "HZFE", member: 17 };\n')),(0,a.kt)("h4",{id:"23-\u52a8\u6001\u5c5e\u6027"},"2.3 \u52a8\u6001\u5c5e\u6027"),(0,a.kt)("p",null,"Type \u53ef\u4ee5\u4f7f\u7528 in \u5173\u952e\u5b57\u52a8\u6001\u751f\u6210\u5c5e\u6027\uff0c\u800c Interface \u7684\u7d22\u5f15\u503c\u5fc5\u987b\u662f string \u6216 number \u7c7b\u578b\uff0c\u6240\u4ee5 Interface \u5e76\u4e0d\u652f\u6301\u52a8\u6001\u751f\u6210\u5c5e\u6027\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-typescript"},'type HZFELanguage = "JavaScript" | "Go";\ntype HZFEProjects = {\n [key in HZFELanguage]?: string[];\n};\n\nconst hzfeProjects: HZFEProjects = {\n JavaScript: ["xx", "xx"],\n};\n')),(0,a.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://www.typescriptlang.org/"},"TypScript - Typed JavaScript at Any Scale"))))}y.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/8584d295.ebf32f7e.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[7259],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,f=s["".concat(p,".").concat(m)]||s[m]||k[m]||o;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>k,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(87462),a=(r(67294),r(3905));const o={sidebar_label:"\u57fa\u7840\uff1a\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406",sidebar_position:6},l="\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406",i={unversionedId:"book1/js-closures",id:"book1/js-closures",title:"\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406",description:"\u76f8\u5173\u95ee\u9898",source:"@site/docs/book1/js-closures.md",sourceDirName:"book1",slug:"/book1/js-closures",permalink:"/awesome-interview/book1/js-closures",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_label:"\u57fa\u7840\uff1a\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406",sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"\u6846\u67b6\uff1aVue \u7684 computed \u548c watch \u7684\u533a\u522b",permalink:"/awesome-interview/book1/frame-vue-computed-watch"},next:{title:"\u57fa\u7840\uff1a\u524d\u7aef\u6a21\u5757\u5316\u89c4\u8303",permalink:"/awesome-interview/book1/js-module-specs"}},p={},u=[{value:"\u76f8\u5173\u95ee\u9898",id:"\u76f8\u5173\u95ee\u9898",level:2},{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. \u4f5c\u7528\u57df",id:"1-\u4f5c\u7528\u57df",level:3},{value:"2. \u4ec0\u4e48\u662f\u95ed\u5305",id:"2-\u4ec0\u4e48\u662f\u95ed\u5305",level:3},{value:"3. \u95ed\u5305\u7684\u5e94\u7528",id:"3-\u95ed\u5305\u7684\u5e94\u7528",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],c={toc:u},s="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406"},"\u95ed\u5305\u7684\u4f5c\u7528\u548c\u539f\u7406"),(0,a.kt)("h2",{id:"\u76f8\u5173\u95ee\u9898"},"\u76f8\u5173\u95ee\u9898"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ec0\u4e48\u662f\u95ed\u5305"),(0,a.kt)("li",{parentName:"ul"},"\u95ed\u5305\u7684\u5e94\u7528")),(0,a.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"\u4f5c\u7528\u57df")," ",(0,a.kt)("inlineCode",{parentName:"p"},"\u5f15\u7528")," ",(0,a.kt)("inlineCode",{parentName:"p"},"\u51fd\u6570")),(0,a.kt)("p",null,"\u4f5c\u7528\uff1a\u80fd\u591f\u5728\u51fd\u6570\u5b9a\u4e49\u7684\u4f5c\u7528\u57df\u5916\uff0c\u4f7f\u7528\u51fd\u6570\u5b9a\u4e49\u4f5c\u7528\u57df\u5185\u7684\u5c40\u90e8\u53d8\u91cf\uff0c\u5e76\u4e14\u4e0d\u4f1a\u6c61\u67d3\u5168\u5c40\u3002"),(0,a.kt)("p",null,"\u539f\u7406\uff1a\u57fa\u4e8e\u8bcd\u6cd5\u4f5c\u7528\u57df\u94fe\u548c\u5783\u573e\u56de\u6536\u673a\u5236\uff0c\u901a\u8fc7\u7ef4\u6301\u51fd\u6570\u4f5c\u7528\u57df\u7684\u5f15\u7528\uff0c\u8ba9\u51fd\u6570\u4f5c\u7528\u57df\u53ef\u4ee5\u5728\u5f53\u524d\u4f5c\u7528\u57df\u5916\u88ab\u8bbf\u95ee\u5230\u3002"),(0,a.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,a.kt)("h3",{id:"1-\u4f5c\u7528\u57df"},"1. \u4f5c\u7528\u57df"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f5c\u7528\u57df"),"\uff1a\u7528\u4e8e\u786e\u5b9a\u5728\u4f55\u5904\u4ee5\u53ca\u5982\u4f55\u67e5\u627e\u53d8\u91cf\uff08\u6807\u8bc6\u7b26\uff09\u7684\u4e00\u5957\u89c4\u5219\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u8bcd\u6cd5\u4f5c\u7528\u57df"),"\uff1a\u8bcd\u6cd5\u4f5c\u7528\u57df\u662f",(0,a.kt)("strong",{parentName:"li"},"\u5b9a\u4e49\u5728\u8bcd\u6cd5\u9636\u6bb5\u7684\u4f5c\u7528\u57df"),"\u3002\u8bcd\u6cd5\u4f5c\u7528\u57df\u662f\u7531\u5199\u4ee3\u7801\u65f6\u5c06\u4ee3\u7801\u548c\u5757\u4f5c\u7528\u57df\u5199\u5728\u54ea\u91cc\u6765\u51b3\u5b9a\u7684\uff0c\u56e0\u6b64\u5f53\u8bcd\u6cd5\u4f5c\u7528\u57df\u5904\u7406\u4ee3\u7801\u662f\u4f1a\u4fdd\u6301\u4f5c\u7528\u57df\u4e0d\u53d8(\u5927\u90e8\u5206\u60c5\u51b5)\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5757\u4f5c\u7528\u57df"),"\uff1a\u6307\u7684\u662f\u53d8\u91cf\u548c\u51fd\u6570\u4e0d\u4ec5\u53ef\u4ee5\u5c5e\u4e8e\u6240\u5904\u7684\u4f5c\u7528\u57df\uff0c\u4e5f\u53ef\u4ee5\u5c5e\u4e8e\u67d0\u4e2a\u4ee3\u7801\u5757\uff08\u901a\u5e38\u7528{}\u5305\u88f9\uff09\u3002\u5e38\u89c1\u7684\u5757\u7ea7\u4f5c\u7528\u57df\u6709 with\uff0ctry/catch\uff0clet\uff0cconst \u7b49\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u51fd\u6570\u4f5c\u7528\u57df"),"\uff1a\u5c5e\u4e8e\u8fd9\u4e2a\u51fd\u6570\u7684\u5168\u90e8\u53d8\u91cf\u90fd\u53ef\u4ee5\u5728\u6574\u4e2a\u51fd\u6570\u8303\u56f4\u5185\u4f7f\u7528\u53ca\u590d\u7528\uff08\u5305\u62ec\u5d4c\u5957\u4f5c\u7528\u57df\uff09\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f5c\u7528\u57df\u94fe"),"\uff1a\u67e5\u627e\u53d8\u91cf\u65f6\uff0c\u5148\u4ece\u5f53\u524d\u4f5c\u7528\u57df\u5f00\u59cb\u67e5\u627e\uff0c\u5982\u679c\u6ca1\u6709\u627e\u5230\uff0c\u5c31\u4f1a\u5230\u7236\u7ea7(\u8bcd\u6cd5\u5c42\u9762\u4e0a\u7684\u7236\u7ea7)\u4f5c\u7528\u57df\u4e2d\u67e5\u627e\uff0c\u4e00\u76f4\u627e\u5230\u5168\u5c40\u4f5c\u7528\u57df\u3002\u4f5c\u7528\u57df\u94fe\u6b63\u662f\u5305\u542b\u8fd9\u4e9b\u4f5c\u7528\u57df\u7684\u5217\u8868\u3002")),(0,a.kt)("h3",{id:"2-\u4ec0\u4e48\u662f\u95ed\u5305"},"2. \u4ec0\u4e48\u662f\u95ed\u5305"),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"\u5f53\u51fd\u6570\u53ef\u4ee5\u8bb0\u4f4f\u5e76\u8bbf\u95ee\u6240\u5728\u7684\u8bcd\u6cd5\u4f5c\u7528\u57df\u65f6\uff0c\u5c31\u4ea7\u751f\u4e86\u95ed\u5305\uff0c\u5373\u4f7f\u662f\u51fd\u6570\u5728\u5f53\u524d\u8bcd\u6cd5\u4f5c\u7528\u57df\u5916\u6267\u884c\u3002 \u2014\u2014\u300a\u4f60\u4e0d\u77e5\u9053\u7684 JavaScript\u300b")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},'function foo() {\n var a = "hzfe";\n function bar() {\n console.log(a);\n }\n return bar;\n}\n\nvar baz = foo();\nbaz(); // hzfe\n')),(0,a.kt)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u51fd\u6570 bar \u4f5c\u4e3a\u8fd4\u56de\u503c\u8fd4\u56de\u540e\uff0c\u5728\u81ea\u5df1\u5b9a\u4e49\u7684\u8bcd\u6cd5\u4f5c\u7528\u57df\u4ee5\u5916\u7684\u5730\u65b9\u6267\u884c\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u5728\u51fd\u6570 foo \u6267\u884c\u540e\uff0c\u901a\u5e38\u4f1a\u671f\u5f85\u51fd\u6570 foo \u7684\u6574\u4e2a\u5185\u90e8\u4f5c\u7528\u57df\u88ab\u5f15\u64ce\u56de\u6536\u673a\u5236\u9500\u6bc1\u3002\u800c\u95ed\u5305\u53ef\u4ee5\u963b\u6b62\u8fd9\u4ef6\u4e8b\u60c5\u7684\u53d1\u751f\u3002\u4e8b\u5b9e\u4e0a\u5185\u90e8\u4f5c\u7528\u57df\u4f9d\u7136\u5b58\u5728\uff0c\u56e0\u4e3a\u51fd\u6570 bar \u672c\u8eab\u5728\u4f7f\u7528\uff0c\u6240\u4ee5\u5e76\u4e0d\u4f1a\u88ab\u56de\u6536\u3002"),(0,a.kt)("p",null,"\u5728 JavaScript \u4e2d\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u6bcf\u5f53\u521b\u5efa\u4e00\u4e2a\u51fd\u6570\uff0c\u95ed\u5305\u5c31\u4f1a\u5728\u51fd\u6570\u521b\u5efa\u7684\u540c\u65f6\u88ab\u521b\u5efa\u51fa\u6765"),"\u3002"),(0,a.kt)("h3",{id:"3-\u95ed\u5305\u7684\u5e94\u7528"},"3. \u95ed\u5305\u7684\u5e94\u7528"),(0,a.kt)("p",null,"\u65e0\u8bba\u4f55\u65f6\u4f55\u5730\uff0c\u5982\u679c",(0,a.kt)("strong",{parentName:"p"},"\u5c06\u51fd\u6570\u4f5c\u4e3a\u8fd4\u56de\u503c\uff0c\u5c31\u4f1a\u770b\u5230\u95ed\u5305\u5728\u8fd9\u4e9b\u51fd\u6570\u4e2d\u7684\u5e94\u7528"),"\u3002\u5728\u5b9a\u65f6\u5668\uff0c\u4e8b\u4ef6\u76d1\u542c\u5668\uff0cajax \u8bf7\u6c42\uff0c\u8de8\u7a97\u53e3\u901a\u4fe1\uff0cweb workers \u6216\u8005\u4efb\u4f55\u5176\u4ed6\u7684\u5f02\u6b65/\u540c\u6b65\u4efb\u52a1\u4e2d\uff0c\u53ea\u8981",(0,a.kt)("strong",{parentName:"p"},"\u4f7f\u7528\u4e86\u56de\u8c03\u51fd\u6570\uff0c\u5b9e\u9645\u4e0a\u5c31\u662f\u4f7f\u7528\u95ed\u5305"),"\u3002\u4f7f\u7528\u95ed\u5305\u7684\u4f8b\u5b50\u53ef\u4ee5\u53c2\u8003",(0,a.kt)("a",{parentName:"p",href:"/awesome-interview/book2/coding-throttle-debounce"},"\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570"),"\u3002"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"TIPS: \u95ed\u5305\u4e0e\u6267\u884c\u51fd\u6570\u5173\u7cfb")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},'var a = "hzfe";\n(function IIFE() {\n console.log(a);\n})();\n')),(0,a.kt)("p",null,"\u901a\u5e38\u8ba4\u4e3a\u7acb\u5373\u6267\u884c\u51fd\u6570\uff08IIFE\uff09\u662f\u5178\u578b\u7684\u89c2\u5bdf\u95ed\u5305\u7684\u5178\u578b\u4f8b\u5b50\uff0c\u4f46\u4e25\u683c\u6765\u8bf4\u5e76\u4e0d\u662f\u3002",(0,a.kt)("strong",{parentName:"p"},"\u867d\u7136\u521b\u5efa\u4e86\u95ed\u5305\uff0c\u4f46\u6ca1\u6709\u4f53\u73b0\u51fa\u95ed\u5305\u7684\u4f5c\u7528"),"\u3002\u56e0\u4e3a\u51fd\u6570\u5e76\u4e0d\u662f\u5728\u5b83\u672c\u8eab\u7684\u8bcd\u6cd5\u4f5c\u7528\u57df\u4ee5\u5916\u6267\u884c\u7684\u3002\n\u5b83\u5728\u5b9a\u4e49\u65f6\u6240\u5728\u7684\u4f5c\u7528\u57df\u4e2d\u6267\u884c\uff0c\u800c\u975e\u5916\u90e8\u4f5c\u7528\u57df\u3002"),(0,a.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures"},"\u95ed\u5305 MDN")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"/awesome-interview/book2/browser-garbage"},"\u5783\u573e\u56de\u6536\u673a\u5236")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/getify/You-Dont-Know-JS"},"\u4f60\u4e0d\u77e5\u9053\u7684 JavaScript\uff08\u4e0a\u5377\uff09")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E9%97%AD%E5%8C%85_(%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6)"},"\u7ef4\u57fa\u767e\u79d1-\u95ed\u5305"))))}k.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/8894.446f680f.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[8894],{18894:(k,e,s)=>{s.r(e)}}]); -------------------------------------------------------------------------------- /assets/js/90b799f4.6601a4ef.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[737],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>h});var r=t(67294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,i=e.originalType,u=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),p=c(t),f=l,h=p["".concat(u,".").concat(f)]||p[f]||s[f]||i;return t?r.createElement(h,o(o({ref:n},d),{},{components:t})):r.createElement(h,o({ref:n},d))}));function h(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var i=t.length,o=new Array(i);o[0]=f;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a[p]="string"==typeof e?e:l,o[1]=a;for(var c=2;c{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var r=t(87462),l=(t(67294),t(3905));const i={sidebar_label:"\u7b97\u6cd5\uff1a\u5e73\u8861\u4e8c\u53c9\u6811",sidebar_position:11},o="\u5e73\u8861\u4e8c\u53c9\u6811",a={unversionedId:"book1/algorithm-balanced-binary-trees",id:"book1/algorithm-balanced-binary-trees",title:"\u5e73\u8861\u4e8c\u53c9\u6811",description:"\u9898\u76ee\u63cf\u8ff0",source:"@site/docs/book1/algorithm-balanced-binary-trees.md",sourceDirName:"book1",slug:"/book1/algorithm-balanced-binary-trees",permalink:"/awesome-interview/book1/algorithm-balanced-binary-trees",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{sidebar_label:"\u7b97\u6cd5\uff1a\u5e73\u8861\u4e8c\u53c9\u6811",sidebar_position:11},sidebar:"tutorialSidebar",previous:{title:"\u7f16\u7801\uff1a\u5b9e\u73b0\u4e00\u4e2a\u7b26\u5408 Promises/A+ \u89c4\u8303\u7684 Promise",permalink:"/awesome-interview/book1/coding-promise"},next:{title:"\u7efc\u5408\uff1a\u6d4f\u89c8\u5668\u4ece\u8f93\u5165\u7f51\u5740\u5230\u9875\u9762\u5c55\u73b0\u7684\u8fc7\u7a0b",permalink:"/awesome-interview/book1/topic-enter-url-display-xx"}},u={},c=[{value:"\u9898\u76ee\u63cf\u8ff0",id:"\u9898\u76ee\u63cf\u8ff0",level:2},{value:"\u57fa\u672c\u77e5\u8bc6\u70b9",id:"\u57fa\u672c\u77e5\u8bc6\u70b9",level:2},{value:"\u9898\u89e3",id:"\u9898\u89e3",level:2},{value:"\u89e3\u6cd5\u4e00",id:"\u89e3\u6cd5\u4e00",level:3},{value:"\u601d\u8def",id:"\u601d\u8def",level:4},{value:"\u4ee3\u7801",id:"\u4ee3\u7801",level:4},{value:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790",id:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790",level:4},{value:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790",id:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790",level:4},{value:"\u89e3\u6cd5\u4e8c",id:"\u89e3\u6cd5\u4e8c",level:3},{value:"\u601d\u8def",id:"\u601d\u8def-1",level:4},{value:"\u4ee3\u7801",id:"\u4ee3\u7801-1",level:4},{value:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790",id:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790-1",level:4},{value:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790",id:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790-1",level:4}],d={toc:c},p="wrapper";function s(e){let{components:n,...t}=e;return(0,l.kt)(p,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u5e73\u8861\u4e8c\u53c9\u6811"},"\u5e73\u8861\u4e8c\u53c9\u6811"),(0,l.kt)("h2",{id:"\u9898\u76ee\u63cf\u8ff0"},"\u9898\u76ee\u63cf\u8ff0"),(0,l.kt)("p",null,"\u8f93\u5165\u4e00\u68f5\u4e8c\u53c9\u6811\u7684\u6839\u8282\u70b9\uff0c\u5224\u65ad\u8be5\u6811\u662f\u4e0d\u662f\u5e73\u8861\u4e8c\u53c9\u6811\u3002\u5982\u679c\u67d0\u4e8c\u53c9\u6811\u4e2d\u4efb\u610f\u8282\u70b9\u7684\u5de6\u53f3\u5b50\u6811\u7684\u6df1\u5ea6\u76f8\u5dee\u4e0d\u8d85\u8fc7 1\uff0c\u90a3\u4e48\u5b83\u5c31\u662f\u4e00\u68f5\u5e73\u8861\u4e8c\u53c9\u6811\u3002"),(0,l.kt)("p",null,"\u793a\u4f8b 1:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"\u7ed9\u5b9a\u4e8c\u53c9\u6811 [3, 9, 20, null, null, 15, 7]\n\n 3\n / \\\n 9 20\n / \\\n 15 7\n\u8fd4\u56de true\u3002\n")),(0,l.kt)("p",null,"\u793a\u4f8b 2:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre"},"\u7ed9\u5b9a\u4e8c\u53c9\u6811 [1,2,2,3,3,null,null,4,4]\n\n 1\n / \\\n 2 2\n / \\\n 3 3\n / \\\n 4 4\n\u8fd4\u56de\xa0false\u3002\n")),(0,l.kt)("p",null,"\u9650\u5236\uff1a0 <= \u6811\u7684\u7ed3\u70b9\u4e2a\u6570 <= 10000"),(0,l.kt)("h2",{id:"\u57fa\u672c\u77e5\u8bc6\u70b9"},"\u57fa\u672c\u77e5\u8bc6\u70b9"),(0,l.kt)("p",null,"\u4e8c\u53c9\u6811\u7684\u6bcf\u4e2a\u8282\u70b9\u6700\u591a\u6709\u4e24\u4e2a\u5b50\u8282\u70b9\uff0c\u5e73\u8861\u4e8c\u53c9\u6811\u4e2d\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u7684\u5de6\u53f3\u5b50\u6811\u9ad8\u5ea6\u76f8\u5dee\u4e0d\u80fd\u5927\u4e8e 1\uff0c\u6ee1\u4e8c\u53c9\u6811\u548c\u5b8c\u5168\u4e8c\u53c9\u6811\u90fd\u662f\u5e73\u8861\u4e8c\u53c9\u6811\uff0c\u666e\u901a\u4e8c\u53c9\u6811\u6709\u53ef\u80fd\u662f\u5e73\u8861\u4e8c\u53c9\u6811\u3002"),(0,l.kt)("h2",{id:"\u9898\u89e3"},"\u9898\u89e3"),(0,l.kt)("h3",{id:"\u89e3\u6cd5\u4e00"},"\u89e3\u6cd5\u4e00"),(0,l.kt)("h4",{id:"\u601d\u8def"},"\u601d\u8def"),(0,l.kt)("p",null,"\u82e5\u60f3\u5224\u65ad\u4e8c\u53c9\u6811\u662f\u4e0d\u662f\u5e73\u8861\u4e8c\u53c9\u6811\uff0c\u53ea\u9700\u8981\u5224\u65ad\u5de6\u53f3\u5b50\u6811\u7684\u9ad8\u5ea6\u5dee\u662f\u4e0d\u662f\u4e0d\u8d85\u8fc7 1 \u5373\u53ef\u3002\u540c\u65f6\uff0c\u8981\u6ee1\u8db3\u4e00\u4e2a\u6811\u662f\u5e73\u8861\u4e8c\u53c9\u6811\uff0c\u5b83\u7684\u5b50\u6811\u4e5f\u5fc5\u987b\u662f\u5e73\u8861\u4e8c\u53c9\u6811\u3002\u6211\u4eec\u53ef\u4ee5\u4ece\u6839\u7ed3\u70b9\u5f00\u59cb\uff0c\u901a\u8fc7\u9012\u5f52\u6765\u6c42\u5f97\u5b50\u6811\u7684\u9ad8\u5ea6\uff0c\u4ee5\u53ca\u5b50\u6811\u662f\u5426\u662f\u5e73\u8861\u4e8c\u53c9\u6811\uff0c\u4ee5\u6b64\u6765\u7ed3\u5408\u5224\u65ad\u4e8c\u53c9\u6811\u662f\u5426\u662f\u5e73\u8861\u4e8c\u53c9\u6811\u3002"),(0,l.kt)("h4",{id:"\u4ee3\u7801"},"\u4ee3\u7801"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for a binary tree node.\n * function TreeNode(val, left, right) {\n * this.val = (val === undefined ? 0 : val)\n * this.left = (left === undefined ? null : left)\n * this.right = (right === undefined ? null : right)\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {boolean}\n */\nconst isBalanced = function (root) {\n if (root === null) {\n return true;\n } else {\n return (\n Math.abs(height(root.left) - height(root.right)) <= 1 &&\n isBalanced(root.left) &&\n isBalanced(root.right)\n );\n }\n};\n\nconst height = function (root) {\n if (root === null) {\n return 0;\n } else {\n return Math.max(height(root.left), height(root.right)) + 1;\n }\n};\n")),(0,l.kt)("h4",{id:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790"},"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790"),(0,l.kt)("p",null,"\u8be5\u65b9\u6cd5\u6700\u574f\u7684\u60c5\u51b5\u662f\u6bcf\u4e2a\u7236\u8282\u70b9\u90fd\u53ea\u6709\u4e00\u4e2a\u5b50\u8282\u70b9\uff0c\u8fd9\u6837\u6811\u7684\u9ad8\u5ea6\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(n)\uff0c\u5373\u201c\u94fe\u8868\u201d\u7684\u957f\u5ea6\u3002\u800c\u7b2c d \u5c42\u8c03\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"height")," \u51fd\u6570\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u662f O(d)\uff0c\u6240\u4ee5\u6574\u4f53\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a\u9ad8\u5ea6\u65f6\u95f4\u590d\u6742\u5ea6 ","*"," \u8c03\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"height")," \u51fd\u6570\u7684\u65f6\u95f4\u590d\u6742\u5ea6\uff0c\u5373 O(n^2)\u3002"),(0,l.kt)("h4",{id:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790"},"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790"),(0,l.kt)("p",null,"\u7a7a\u95f4\u590d\u6742\u5ea6\u53d6\u51b3\u4e8e\u9012\u5f52\u8c03\u7528\u7684\u5c42\u6570\uff0c\u4e0d\u4f1a\u8d85\u8fc7 n \u5c42\uff0c\u6240\u4ee5\u7a7a\u95f4\u590d\u6742\u5ea6\u662f O(n)\u3002"),(0,l.kt)("h3",{id:"\u89e3\u6cd5\u4e8c"},"\u89e3\u6cd5\u4e8c"),(0,l.kt)("h4",{id:"\u601d\u8def-1"},"\u601d\u8def"),(0,l.kt)("p",null,"\u4e0a\u9762\u7684\u65b9\u6cd5\u662f\u81ea\u9876\u800c\u4e0b\u7684\uff0c\u8fd9\u6837\u5176\u5b9e\u5c31\u4f1a\u5bfc\u81f4\u6bcf\u5c42\u7684\u9ad8\u5ea6\u90fd\u8981\u91cd\u590d\u8ba1\u7b97\u3002\u90a3\u4e48\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u540e\u5e8f\u904d\u5386\uff0c\u8fd9\u6837\u6bcf\u4e2a\u8282\u70b9\u7684\u9ad8\u5ea6\u5c31\u80fd\u6839\u636e\u524d\u9762\u7684\u7ed3\u679c\u7b97\u51fa\u6765\u3002"),(0,l.kt)("h4",{id:"\u4ee3\u7801-1"},"\u4ee3\u7801"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * Definition for a binary tree node.\n * function TreeNode(val, left, right) {\n * this.val = (val === undefined ? 0 : val)\n * this.left = (left === undefined ? null : left)\n * this.right = (right === undefined ? null : right)\n * }\n */\n/**\n * @param {TreeNode} root\n * @return {boolean}\n */\nvar isBalanced = function (root) {\n return height(root) != -1;\n};\n\nvar height = function (root) {\n if (root == null) {\n return 0;\n }\n\n const left = height(root.left);\n const right = height(root.right);\n\n if (left === -1 || right === -1 || Math.abs(left - right) > 1) {\n return -1;\n }\n\n return Math.max(left, right) + 1;\n};\n")),(0,l.kt)("h4",{id:"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790-1"},"\u65f6\u95f4\u590d\u6742\u5ea6\u5206\u6790"),(0,l.kt)("p",null,"\u7531\u4e8e\u662f\u540e\u5e8f\u904d\u5386\uff0c\u6bcf\u4e2a\u8282\u70b9\u53ea\u4f1a\u88ab\u8c03\u7528 1 \u6b21\uff0c\u6240\u4ee5\uff0c\u8be5\u65b9\u6cd5\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u662f O(n)\u3002"),(0,l.kt)("h4",{id:"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790-1"},"\u7a7a\u95f4\u590d\u6742\u5ea6\u5206\u6790"),(0,l.kt)("p",null,"\u7a7a\u95f4\u590d\u6742\u5ea6\u53d6\u51b3\u4e8e\u9012\u5f52\u8c03\u7528\u7684\u5c42\u6570\uff0c\u4e0d\u4f1a\u8d85\u8fc7 n \u5c42\uff0c\u6240\u4ee5\u7a7a\u95f4\u590d\u6742\u5ea6\u662f O(n)\u3002"))}s.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/a757db9b.62dd77de.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[5851],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>y});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),f=l(r),m=o,y=f["".concat(p,".").concat(m)]||f[m]||s[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[f]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(87462),o=r(67294),a=r(3905);function c(){return o.createElement("div",{style:{marginBottom:"1.5em"}},o.createElement("a",{style:{cursor:"pointer"},onClick:()=>{history.back()}},"\u8fd4\u56de"))}const i={},p=void 0,l={type:"mdx",permalink:"/awesome-interview/guide",source:"@site/src/pages/guide.mdx",frontMatter:{}},u=[],f={toc:u},s="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},f,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)(c,{mdxType:"BackLink"}))}m.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/abf449ea.b1986ef7.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[4501],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var r=t(67294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var p=r.createContext({}),c=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=c(t),g=l,f=u["".concat(p,".").concat(g)]||u[g]||d[g]||a;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=t.length,i=new Array(a);i[0]=g;var o={};for(var p in n)hasOwnProperty.call(n,p)&&(o[p]=n[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var r=t(87462),l=(t(67294),t(3905));const a={sidebar_label:"\u7f16\u7801\uff1a\u5b9e\u73b0 apply/call/bind",sidebar_position:10},i="\u5b9e\u73b0 apply/call/bind",o={unversionedId:"book4/coding-apply-call-bind",id:"book4/coding-apply-call-bind",title:"\u5b9e\u73b0 apply/call/bind",description:"apply",source:"@site/docs/book4/coding-apply-call-bind.md",sourceDirName:"book4",slug:"/book4/coding-apply-call-bind",permalink:"/awesome-interview/book4/coding-apply-call-bind",draft:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{sidebar_label:"\u7f16\u7801\uff1a\u5b9e\u73b0 apply/call/bind",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"\u6837\u5f0f\uff1a\u6c34\u5e73\u5782\u76f4\u5c45\u4e2d\u65b9\u6848",permalink:"/awesome-interview/book4/css-vertical-horizontal-center"},next:{title:"\u7b97\u6cd5\uff1a\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57",permalink:"/awesome-interview/book4/array-repeat-number"}},p={},c=[{value:"apply",id:"apply",level:2},{value:"1. \u8bed\u6cd5",id:"1-\u8bed\u6cd5",level:3},{value:"2. \u6d41\u7a0b\u56fe",id:"2-\u6d41\u7a0b\u56fe",level:3},{value:"3. \u7f16\u5199\u4ee3\u7801",id:"3-\u7f16\u5199\u4ee3\u7801",level:3},{value:"call",id:"call",level:2},{value:"1. \u8bed\u6cd5",id:"1-\u8bed\u6cd5-1",level:3},{value:"2. \u6d41\u7a0b\u56fe",id:"2-\u6d41\u7a0b\u56fe-1",level:3},{value:"3. \u7f16\u5199\u4ee3\u7801",id:"3-\u7f16\u5199\u4ee3\u7801-1",level:3},{value:"bind",id:"bind",level:2},{value:"1. \u8bed\u6cd5",id:"1-\u8bed\u6cd5-2",level:3},{value:"2. \u6d41\u7a0b\u56fe",id:"2-\u6d41\u7a0b\u56fe-2",level:3},{value:"3. \u7f16\u5199\u4ee3\u7801",id:"3-\u7f16\u5199\u4ee3\u7801-2",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],s={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,l.kt)(u,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u5b9e\u73b0-applycallbind"},"\u5b9e\u73b0 apply/call/bind"),(0,l.kt)("h2",{id:"apply"},"apply"),(0,l.kt)("h3",{id:"1-\u8bed\u6cd5"},"1. \u8bed\u6cd5"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},"func.apply(thisArg, [argsArray]);\n")),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u53c2\u6570")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"thisArg")),(0,l.kt)("p",null,"\u5728 func \u51fd\u6570\u8fd0\u884c\u65f6\u4f7f\u7528\u7684 this \u503c\u3002"),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"argsArray")),(0,l.kt)("p",null,"\u4e00\u4e2a\u6570\u7ec4\u6216\u8005\u7c7b\u6570\u7ec4\u5bf9\u8c61\uff0c\u5176\u4e2d\u7684\u6570\u7ec4\u5143\u7d20\u5c06\u4f5c\u4e3a\u5355\u72ec\u7684\u53c2\u6570\u4f20\u7ed9 func \u51fd\u6570\u3002\u5982\u679c\u8be5\u53c2\u6570\u7684\u503c\u4e3a null \u6216 undefined\uff0c\u5219\u8868\u793a\u4e0d\u9700\u8981\u4f20\u5165\u4efb\u4f55\u53c2\u6570\u3002"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u8fd4\u56de\u503c")),(0,l.kt)("p",null,"\u4f7f\u7528\u6307\u5b9a\u7684 this \u503c\u548c\u53c2\u6570\u8c03\u7528\u51fd\u6570\u7684\u7ed3\u679c\u3002"),(0,l.kt)("h3",{id:"2-\u6d41\u7a0b\u56fe"},"2. \u6d41\u7a0b\u56fe"),(0,l.kt)("p",null,(0,l.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17525377/147632530-34eac628-0bbd-4025-890b-2596a421263d.jpg",alt:"apply"})),(0,l.kt)("h3",{id:"3-\u7f16\u5199\u4ee3\u7801"},"3. \u7f16\u5199\u4ee3\u7801"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},'Function.prototype.apply = function (thisArg, argsArray) {\n if (typeof this !== "function") {\n throw new TypeError(\n "Function.prototype.apply was called on which is not a function"\n );\n }\n\n if (thisArg === undefined || thisArg === null) {\n thisArg = window;\n } else {\n thisArg = Object(thisArg);\n }\n\n // \u5c06 func \u653e\u5165 thisArg \u5185\uff0c\u8fd9\u6837\u5728\u8c03\u7528 thisArg[func] \u65f6 this \u81ea\u7136\u5c31\u6307\u5411\u4e86 thisArg\n const func = Symbol("func");\n thisArg[func] = this;\n\n let result;\n\n if (argsArray && typeof argsArray === "object" && "length" in argsArray) {\n // \u6b64\u5904\u4f7f\u7528 Array.from \u5305\u88f9\u8ba9\u5176\u652f\u6301\u5f62\u5982 { length: 1, 0: 1 } \u8fd9\u6837\u7684\u7c7b\u6570\u7ec4\u5bf9\u8c61\uff0c\u76f4\u63a5\u5bf9 argsArray \u5c55\u5f00\u5c06\u4f1a\u6267\u884c\u51fa\u9519\n result = thisArg[func](...Array.from(argsArray));\n } else if (argsArray === undefined || argsArray === null) {\n result = thisArg[func]();\n } else {\n throw new TypeError("CreateListFromArrayLike called on non-object");\n }\n\n delete thisArg[func];\n\n return result;\n};\n')),(0,l.kt)("h2",{id:"call"},"call"),(0,l.kt)("h3",{id:"1-\u8bed\u6cd5-1"},"1. \u8bed\u6cd5"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},"func.call(thisArg, arg1, arg2, ...)\n")),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u53c2\u6570")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"thisArg")),(0,l.kt)("p",null,"\u5728 func \u51fd\u6570\u8fd0\u884c\u65f6\u4f7f\u7528\u7684 this \u503c\u3002"),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"arg1, arg2, ...")),(0,l.kt)("p",null,"\u6307\u5b9a\u7684\u53c2\u6570\u5217\u8868\u3002"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u8fd4\u56de\u503c")),(0,l.kt)("p",null,"\u4f7f\u7528\u6307\u5b9a\u7684 this \u503c\u548c\u53c2\u6570\u8c03\u7528\u51fd\u6570\u7684\u7ed3\u679c\u3002"),(0,l.kt)("h3",{id:"2-\u6d41\u7a0b\u56fe-1"},"2. \u6d41\u7a0b\u56fe"),(0,l.kt)("p",null,(0,l.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17525377/147632668-575c348e-96f5-4088-8cee-38e3ee70a2cc.jpg",alt:"call"})),(0,l.kt)("h3",{id:"3-\u7f16\u5199\u4ee3\u7801-1"},"3. \u7f16\u5199\u4ee3\u7801"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},'Function.prototype.call = function (thisArg, ...argsArray) {\n if (typeof this !== "function") {\n throw new TypeError(\n "Function.prototype.call was called on which is not a function"\n );\n }\n\n if (thisArg === undefined || thisArg === null) {\n thisArg = window;\n } else {\n thisArg = Object(thisArg);\n }\n\n // \u5c06 func \u653e\u5165 thisArg \u5185\uff0c\u8fd9\u6837\u5728\u8c03\u7528 thisArg[func] \u65f6 this \u81ea\u7136\u5c31\u6307\u5411\u4e86 thisArg\n const func = Symbol("func");\n thisArg[func] = this;\n\n let result;\n\n if (argsArray.length) {\n result = thisArg[func](...argsArray);\n } else {\n result = thisArg[func]();\n }\n\n delete thisArg[func];\n\n return result;\n};\n')),(0,l.kt)("h2",{id:"bind"},"bind"),(0,l.kt)("h3",{id:"1-\u8bed\u6cd5-2"},"1. \u8bed\u6cd5"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},"func.bind(thisArg[, arg1[, arg2[, ...]]])\n")),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u53c2\u6570")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"thisArg")),(0,l.kt)("p",null,"\u8c03\u7528\u7ed1\u5b9a\u51fd\u6570\u65f6\u4f5c\u4e3a this \u53c2\u6570\u4f20\u9012\u7ed9\u76ee\u6807\u51fd\u6570\u7684\u503c\u3002 \u5982\u679c\u4f7f\u7528 new \u8fd0\u7b97\u7b26\u6784\u9020\u7ed1\u5b9a\u51fd\u6570\uff0c\u5219\u5ffd\u7565\u8be5\u503c\u3002"),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"arg1, arg2, ...")),(0,l.kt)("p",null,"\u5f53\u76ee\u6807\u51fd\u6570\u88ab\u8c03\u7528\u65f6\uff0c\u88ab\u9884\u7f6e\u5165\u7ed1\u5b9a\u51fd\u6570\u7684\u53c2\u6570\u5217\u8868\u4e2d\u7684\u53c2\u6570\u3002"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"\u8fd4\u56de\u503c")),(0,l.kt)("p",null,"\u8fd4\u56de\u4e00\u4e2a\u539f\u51fd\u6570\u7684\u62f7\u8d1d\uff0c\u5e76\u62e5\u6709\u6307\u5b9a\u7684 this \u503c\u548c\u521d\u59cb\u53c2\u6570\u3002"),(0,l.kt)("h3",{id:"2-\u6d41\u7a0b\u56fe-2"},"2. \u6d41\u7a0b\u56fe"),(0,l.kt)("p",null,(0,l.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17525377/147632692-d7d335a7-a236-4bee-85a6-51aedbf285b9.jpg",alt:"bind"})),(0,l.kt)("h3",{id:"3-\u7f16\u5199\u4ee3\u7801-2"},"3. \u7f16\u5199\u4ee3\u7801"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-jsx"},'Function.prototype.bind = function (thisArg, ...argsArray) {\n if (typeof this !== "function") {\n throw new TypeError(\n "Function.prototype.bind was called on which is not a function"\n );\n }\n\n if (thisArg === undefined || thisArg === null) {\n thisArg = window;\n } else {\n thisArg = Object(thisArg);\n }\n\n const func = this;\n\n const bound = function (...boundArgsArray) {\n let isNew = false;\n\n // \u5982\u679c func \u4e0d\u662f\u6784\u9020\u5668\uff0c\u76f4\u63a5\u4f7f\u7528 instanceof \u5c06\u51fa\u9519\uff0c\u6240\u4ee5\u9700\u8981\u7528 try...catch \u5305\u88f9\n try {\n isNew = this instanceof func;\n } catch (error) {}\n\n return func.apply(isNew ? this : thisArg, argsArray.concat(boundArgsArray));\n };\n\n const Empty = function () {};\n Empty.prototype = this.prototype;\n bound.prototype = new Empty();\n\n return bound;\n};\n')),(0,l.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply"},"Function.prototype.apply()")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call"},"Function.prototype.call()")),(0,l.kt)("li",{parentName:"ol"},(0,l.kt)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind"},"Function.prototype.bind()"))))}d.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/b728f6fe.bba33834.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[5211],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>d});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=s(r),k=a,d=m["".concat(p,".").concat(k)]||m[k]||u[k]||l;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=k;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const l={sidebar_label:"\u6d4f\u89c8\u5668\uff1a\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8",sidebar_position:2},o="\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8",i={unversionedId:"book1/browser-repain-reflow",id:"book1/browser-repain-reflow",title:"\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8",description:"\u76f8\u5173\u95ee\u9898",source:"@site/docs/book1/browser-repain-reflow.md",sourceDirName:"book1",slug:"/book1/browser-repain-reflow",permalink:"/awesome-interview/book1/browser-repain-reflow",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_label:"\u6d4f\u89c8\u5668\uff1a\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u6d4f\u89c8\u5668\uff1a\u6d4f\u89c8\u5668\u8de8\u57df",permalink:"/awesome-interview/book1/browser-cross-origin"},next:{title:"\u5de5\u7a0b\u5316\uff1awebpack \u5de5\u4f5c\u6d41\u7a0b",permalink:"/awesome-interview/book1/engineer-webpack-workflow"}},p={},s=[{value:"\u76f8\u5173\u95ee\u9898",id:"\u76f8\u5173\u95ee\u9898",level:2},{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. \u4ec0\u4e48\u662f\u91cd\u6392\u91cd\u7ed8",id:"1-\u4ec0\u4e48\u662f\u91cd\u6392\u91cd\u7ed8",level:3},{value:"\u5f15\u8d77\u91cd\u6392/\u91cd\u7ed8\u7684\u5e38\u89c1\u64cd\u4f5c",id:"\u5f15\u8d77\u91cd\u6392\u91cd\u7ed8\u7684\u5e38\u89c1\u64cd\u4f5c",level:4},{value:"2. \u5982\u4f55\u51cf\u5c11\u91cd\u6392\u91cd\u7ed8",id:"2-\u5982\u4f55\u51cf\u5c11\u91cd\u6392\u91cd\u7ed8",level:3},{value:"\u610f\u4e49",id:"\u610f\u4e49",level:4},{value:"\u89e3\u51b3\u65b9\u6848",id:"\u89e3\u51b3\u65b9\u6848",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8"},"\u6d4f\u89c8\u5668\u7684\u91cd\u6392\u91cd\u7ed8"),(0,a.kt)("h2",{id:"\u76f8\u5173\u95ee\u9898"},"\u76f8\u5173\u95ee\u9898"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u5982\u4f55\u63d0\u5347\u9875\u9762\u6e32\u67d3\u6027\u80fd"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u4f55\u51cf\u5c11\u9875\u9762\u91cd\u6392\u91cd\u7ed8"),(0,a.kt)("li",{parentName:"ul"},"\u54ea\u4e9b\u884c\u4e3a\u4f1a\u5f15\u8d77\u91cd\u6392/\u91cd\u7ed8")),(0,a.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"\u6e32\u67d3\u6027\u80fd")," ",(0,a.kt)("inlineCode",{parentName:"p"},"Layout")," ",(0,a.kt)("inlineCode",{parentName:"p"},"Paint")),(0,a.kt)("p",null,"\u6d4f\u89c8\u5668\u6e32\u67d3\u5927\u81f4\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff0c\u5176\u4e2d\u5728\u89e3\u6790 HTML \u540e\uff0c\u4f1a\u4f9d\u6b21\u8fdb\u5165 Layout \u548c Paint \u9636\u6bb5\u3002",(0,a.kt)("strong",{parentName:"p"},"\u6837\u5f0f\u6216\u8282\u70b9\u7684\u66f4\u6539\uff0c\u4ee5\u53ca\u5bf9\u5e03\u5c40\u4fe1\u606f\u7684\u8bbf\u95ee\u7b49"),"\uff0c\u90fd\u6709\u53ef\u80fd\u5bfc\u81f4\u91cd\u6392\u548c\u91cd\u7ed8\u3002\u800c\u91cd\u6392\u548c\u91cd\u7ed8\u7684\u8fc7\u7a0b\u5728",(0,a.kt)("strong",{parentName:"p"},"\u4e3b\u7ebf\u7a0b"),"\u4e2d\u8fdb\u884c\uff0c\u8fd9\u610f\u5473\u7740\u4e0d\u5408\u7406\u7684\u91cd\u6392\u91cd\u7ed8\u4f1a\u5bfc\u81f4",(0,a.kt)("strong",{parentName:"p"},"\u6e32\u67d3\u5361\u987f\uff0c\u7528\u6237\u4ea4\u4e92\u6ede\u540e"),"\u7b49\u6027\u80fd\u95ee\u9898\u3002"),(0,a.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,a.kt)("h3",{id:"1-\u4ec0\u4e48\u662f\u91cd\u6392\u91cd\u7ed8"},"1. \u4ec0\u4e48\u662f\u91cd\u6392\u91cd\u7ed8"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/126033732-d5002255-1c88-4dee-9371-da166aacdca9.png",alt:"image"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Parse HTML\uff1a\u76f8\u5173\u5f15\u64ce\u5206\u522b\u89e3\u6790\u6587\u6863\u548c\u6837\u5f0f\u8868\u4ee5\u53ca\u811a\u672c\uff0c\u751f\u6210 DOM \u548c CSSOM \uff0c\u6700\u7ec8\u5408\u6210\u4e3a Render \u6811\u3002"),(0,a.kt)("li",{parentName:"ol"},"Layout\uff1a\u6d4f\u89c8\u5668\u901a\u8fc7 Render \u6811\u4e2d\u7684\u4fe1\u606f\uff0c\u4ee5\u9012\u5f52\u7684\u5f62\u5f0f\u8ba1\u7b97\u51fa\u6bcf\u4e2a\u8282\u70b9\u7684\u5c3a\u5bf8\u5927\u5c0f\u548c\u5728\u9875\u9762\u4e2d\u7684\u5177\u4f53\u4f4d\u7f6e\u3002"),(0,a.kt)("li",{parentName:"ol"},"Paint\uff1a\u6d4f\u89c8\u5668\u5c06 Render \u6811\u4e2d\u7684\u8282\u70b9\u8f6c\u6362\u6210\u5728\u5c4f\u5e55\u4e0a\u7ed8\u5236\u5b9e\u9645\u50cf\u7d20\u7684\u6307\u4ee4\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u53d1\u751f\u5728\u591a\u4e2a\u56fe\u5c42\u4e0a\u3002"),(0,a.kt)("li",{parentName:"ol"},"Composite\uff1a\u6d4f\u89c8\u5668\u5c06\u6240\u6709\u5c42\u6309\u7167\u4e00\u5b9a\u987a\u5e8f\u5408\u5e76\u4e3a\u4e00\u4e2a\u56fe\u5c42\u5e76\u7ed8\u5236\u5728\u5c4f\u5e55\u4e0a\u3002")),(0,a.kt)("p",null,"\u56fe\u4e2d\u6240\u793a\u6b65\u9aa4\u4e3a\u6d4f\u89c8\u5668\u6e32\u67d3\u7684\u5173\u952e\u8def\u5f84\u3002\u6d4f\u89c8\u5668\u4ece\u83b7\u53d6\u6587\u6863\u3001\u6837\u5f0f\u3001\u811a\u672c\u7b49\u5185\u5bb9\uff0c\u5230\u6700\u7ec8\u6e32\u67d3\u7ed3\u679c\u5230\u5c4f\u5e55\u4e0a\uff0c\u901a\u5e38\u9700\u8981\u7ecf\u8fc7\u5982\u56fe\u6240\u793a\u7684\u6b65\u9aa4\u3002\u800c DOM \u6216 CSSOM \u88ab\u4fee\u6539\uff0c\u4f1a\u5bfc\u81f4\u6d4f\u89c8\u5668\u91cd\u590d\u6267\u884c\u56fe\u4e2d\u7684\u6b65\u9aa4\u3002\u91cd\u6392\u548c\u91cd\u7ed8\uff0c\u672c\u8d28\u4e0a\u6307\u7684\u5c31\u662f\u89e6\u53d1 Layout \u548c Paint \u7684\u8fc7\u7a0b\uff0c\u4e14\u91cd\u6392\u5fc5\u5b9a\u5bfc\u81f4\u91cd\u7ed8\u3002"),(0,a.kt)("h4",{id:"\u5f15\u8d77\u91cd\u6392\u91cd\u7ed8\u7684\u5e38\u89c1\u64cd\u4f5c"},"\u5f15\u8d77\u91cd\u6392/\u91cd\u7ed8\u7684\u5e38\u89c1\u64cd\u4f5c"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5916\u89c2\u6709\u53d8\u5316\u65f6\uff0c\u4f1a\u5bfc\u81f4",(0,a.kt)("strong",{parentName:"li"},"\u91cd\u7ed8"),"\u3002\u76f8\u5173\u7684\u6837\u5f0f\u5c5e\u6027\u5982 ",(0,a.kt)("inlineCode",{parentName:"li"},"color")," ",(0,a.kt)("inlineCode",{parentName:"li"},"opacity")," \u7b49\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5e03\u5c40\u7ed3\u6784\u6216\u8282\u70b9\u5185\u5bb9\u53d8\u5316\u65f6\uff0c\u4f1a\u5bfc\u81f4",(0,a.kt)("strong",{parentName:"li"},"\u91cd\u6392"),"\u3002\u76f8\u5173\u7684\u6837\u5f0f\u5c5e\u6027\u5982 ",(0,a.kt)("inlineCode",{parentName:"li"},"height")," ",(0,a.kt)("inlineCode",{parentName:"li"},"float")," ",(0,a.kt)("inlineCode",{parentName:"li"},"position")," \u7b49\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u76d2\u5b50\u5c3a\u5bf8\u548c\u7c7b\u578b\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5b9a\u4f4d\u65b9\u6848\uff08\u6b63\u5e38\u6d41\u3001\u6d6e\u52a8\u548c\u7edd\u5bf9\u5b9a\u4f4d\uff09\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u6587\u6863\u6811\u4e2d\u5143\u7d20\u4e4b\u95f4\u7684\u5173\u7cfb\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5916\u90e8\u4fe1\u606f\uff08\u5982\u89c6\u53e3\u5927\u5c0f\u7b49\uff09\u3002"))),(0,a.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u5e03\u5c40\u4fe1\u606f\u65f6\uff0c\u4f1a\u5bfc\u81f4",(0,a.kt)("strong",{parentName:"li"},"\u91cd\u6392"),"\u3002\u76f8\u5173\u7684\u65b9\u6cd5\u5c5e\u6027\u5982 ",(0,a.kt)("inlineCode",{parentName:"li"},"offsetTop")," ",(0,a.kt)("inlineCode",{parentName:"li"},"getComputedStyle")," \u7b49\u3002")),(0,a.kt)("h3",{id:"2-\u5982\u4f55\u51cf\u5c11\u91cd\u6392\u91cd\u7ed8"},"2. \u5982\u4f55\u51cf\u5c11\u91cd\u6392\u91cd\u7ed8"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/126033739-3e689aab-fcd8-4928-9e6d-6a047ab2a8c9.png",alt:"image"})),(0,a.kt)("h4",{id:"\u610f\u4e49"},"\u610f\u4e49"),(0,a.kt)("p",null,"\u5927\u591a\u6570\u663e\u793a\u5668\u7684\u5237\u65b0\u7387\u662f 60FPS\uff08frames per second\uff09\u3002\u7406\u60f3\u60c5\u51b5\u4e0b\uff0c\u6d4f\u89c8\u5668\u9700\u8981\u5728 1/60 \u79d2\u5185\u5b8c\u6210\u6e32\u67d3\u9636\u6bb5\u5e76\u4ea4\u4ed8\u4e00\u5e27\u3002\u8fd9\u6837\u7528\u6237\u5c31\u4f1a\u770b\u5230\u4e00\u4e2a\u4ea4\u4e92\u6d41\u7545\u7684\u9875\u9762\u3002"),(0,a.kt)("p",null,"\u5728\u4ea4\u4e92\u9636\u6bb5\uff0c\u9875\u9762\u66f4\u65b0\uff08\u4e00\u822c\u662f\u901a\u8fc7\u6267\u884c JavaScript \u6765\u89e6\u53d1\uff09\u901a\u5e38\u4f1a\u89e6\u53d1\u91cd\u6392\u548c\u91cd\u7ed8\u3002\u4e3a\u4e86\u63d0\u5347\u6d4f\u89c8\u5668\u6e32\u67d3\u6548\u7387\uff0c\u5e94\u5f53\u5c3d\u53ef\u80fd\u51cf\u5c11\u91cd\u7ed8\u91cd\u6392\uff08\u8df3\u8fc7 Layout/Paint \u6b65\u9aa4\uff09\uff0c\u4ece\u800c\u964d\u4f4e\u6d4f\u89c8\u5668\u6e32\u67d3\u8017\u8d39\u7684\u65f6\u95f4\uff0c\u5c06\u5185\u5bb9\u5c3d\u5feb\u6e32\u67d3\u5230\u5c4f\u5e55\u4e0a\u3002"),(0,a.kt)("h4",{id:"\u89e3\u51b3\u65b9\u6848"},"\u89e3\u51b3\u65b9\u6848"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5bf9 DOM \u8fdb\u884c\u6279\u91cf\u5199\u5165\u548c\u8bfb\u53d6\uff08\u901a\u8fc7\u865a\u62df DOM \u6216\u8005 DocumentFragment \u5b9e\u73b0\uff09\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u907f\u514d\u5bf9\u6837\u5f0f\u9891\u7e41\u64cd\u4f5c\uff0c\u4e86\u89e3\u5e38\u7528\u6837\u5f0f\u5c5e\u6027\u89e6\u53d1 Layout / Paint / Composite \u7684",(0,a.kt)("a",{parentName:"li",href:"https://csstriggers.com/"},"\u673a\u5236"),"\uff0c\u5408\u7406\u4f7f\u7528\u6837\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5408\u7406\u5229\u7528\u7279\u6b8a\u6837\u5f0f\u5c5e\u6027\uff08\u5982 transform: translateZ(0) \u6216\u8005 will-change\uff09\uff0c\u5c06\u6e32\u67d3\u5c42\u63d0\u5347\u4e3a\u5408\u6210\u5c42\uff0c\u5f00\u542f GPU \u52a0\u901f\uff0c\u63d0\u9ad8\u9875\u9762\u6027\u80fd\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528\u53d8\u91cf\u5bf9\u5e03\u5c40\u4fe1\u606f\uff08\u5982 clientTop\uff09\u8fdb\u884c\u7f13\u5b58\uff0c\u907f\u514d\u56e0\u9891\u7e41\u8bfb\u53d6\u5e03\u5c40\u4fe1\u606f\u800c\u89e6\u53d1\u91cd\u6392\u548c\u91cd\u7ed8\u3002")),(0,a.kt)("p",null,"\u53e6\u5916\uff0c\u53ef\u4ee5\u501f\u52a9 DevTools Performance \u9762\u677f\u6765\u67e5\u770b\u4ea7\u751f\u91cd\u6392\u91cd\u7ed8\u4efb\u52a1\u5360\u7528\u4e3b\u7ebf\u7a0b\u7684\u60c5\u51b5\u548c\u8c03\u7528\u4ee3\u7801\u3002"),(0,a.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-tree-construction?hl=zh-cn"},"\u6e32\u67d3\u6811\u6784\u5efa\u3001\u5e03\u5c40\u53ca\u7ed8\u5236")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing"},"\u907f\u514d\u5927\u578b\u3001\u590d\u6742\u7684\u5e03\u5c40\u548c\u5e03\u5c40\u6296\u52a8")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://csstriggers.com/"},"CSS \u5c5e\u6027\u89e6\u53d1\u5e03\u5c40\u3001\u7ed8\u5236\u53ca\u5408\u6210\u7684\u6570\u636e")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://gist.github.com/paulirish/5d52fb081b3570c81e3a"},"What forces layout / reflow"))))}u.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/d9cd0856.cc532560.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[6238],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),p=c(n),d=i,f=p["".concat(u,".").concat(d)]||p[d]||m[d]||l;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:i,a[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var r=n(87462),i=(n(67294),n(3905));const l={sidebar_label:"\u7f16\u7801\uff1a\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570",sidebar_position:10},a="\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570",o={unversionedId:"book2/coding-throttle-debounce",id:"book2/coding-throttle-debounce",title:"\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570",description:"\u8282\u6d41",source:"@site/docs/book2/coding-throttle-debounce.md",sourceDirName:"book2",slug:"/book2/coding-throttle-debounce",permalink:"/awesome-interview/book2/coding-throttle-debounce",draft:!1,tags:[],version:"current",sidebarPosition:10,frontMatter:{sidebar_label:"\u7f16\u7801\uff1a\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570",sidebar_position:10},sidebar:"tutorialSidebar",previous:{title:"\u7f51\u7edc\uff1aHTTP \u7f13\u5b58\u673a\u5236",permalink:"/awesome-interview/book2/network-http-cache"},next:{title:"\u7b97\u6cd5\uff1a\u53cd\u8f6c\u94fe\u8868",permalink:"/awesome-interview/book2/algorithm-reverse-linked-list"}},u={},c=[{value:"\u8282\u6d41",id:"\u8282\u6d41",level:2},{value:"1. \u57fa\u672c\u6982\u5ff5",id:"1-\u57fa\u672c\u6982\u5ff5",level:3},{value:"2. \u5e94\u7528\u573a\u666f",id:"2-\u5e94\u7528\u573a\u666f",level:3},{value:"3. \u6d41\u7a0b\u56fe",id:"3-\u6d41\u7a0b\u56fe",level:3},{value:"4. \u7f16\u5199\u4ee3\u7801",id:"4-\u7f16\u5199\u4ee3\u7801",level:3},{value:"\u9632\u6296",id:"\u9632\u6296",level:2},{value:"1. \u57fa\u672c\u6982\u5ff5",id:"1-\u57fa\u672c\u6982\u5ff5-1",level:3},{value:"2. \u5e94\u7528\u573a\u666f",id:"2-\u5e94\u7528\u573a\u666f-1",level:3},{value:"3. \u6d41\u7a0b\u56fe",id:"3-\u6d41\u7a0b\u56fe-1",level:3},{value:"4. \u7f16\u5199\u4ee3\u7801",id:"4-\u7f16\u5199\u4ee3\u7801-1",level:3}],s={toc:c},p="wrapper";function m(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570"},"\u5b9e\u73b0\u8282\u6d41\u9632\u6296\u51fd\u6570"),(0,i.kt)("h2",{id:"\u8282\u6d41"},"\u8282\u6d41"),(0,i.kt)("h3",{id:"1-\u57fa\u672c\u6982\u5ff5"},"1. \u57fa\u672c\u6982\u5ff5"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"throttle(func, wait)")),(0,i.kt)("p",null,"\u6bcf wait \u6beb\u79d2\u5185\u6700\u591a\u53ea\u8c03\u7528\u4e00\u6b21 func\u3002"),(0,i.kt)("h3",{id:"2-\u5e94\u7528\u573a\u666f"},"2. \u5e94\u7528\u573a\u666f"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u641c\u7d22\u6846\u8f93\u5165\u65f6\u7684\u5b9e\u65f6\u8054\u60f3\u3002"),(0,i.kt)("li",{parentName:"ul"},"\u76d1\u542c scroll \u4e8b\u4ef6\u8ba1\u7b97\u4f4d\u7f6e\u4fe1\u606f\u3002")),(0,i.kt)("h3",{id:"3-\u6d41\u7a0b\u56fe"},"3. \u6d41\u7a0b\u56fe"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17525377/126268731-dc74499d-6ed5-408b-b1a8-60c24c77babc.jpg",alt:"\u8282\u6d41"})),(0,i.kt)("h3",{id:"4-\u7f16\u5199\u4ee3\u7801"},"4. \u7f16\u5199\u4ee3\u7801"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-js"},"function throttle(func, wait) {\n let lastTime = 0;\n let timer = null;\n\n return function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n let self = this;\n let args = arguments;\n let nowTime = +new Date();\n\n const remainWaitTime = wait - (nowTime - lastTime);\n\n if (remainWaitTime <= 0) {\n lastTime = nowTime;\n func.apply(self, args);\n } else {\n timer = setTimeout(function () {\n lastTime = +new Date();\n func.apply(self, args);\n timer = null;\n }, remainWaitTime);\n }\n };\n}\n")),(0,i.kt)("h2",{id:"\u9632\u6296"},"\u9632\u6296"),(0,i.kt)("h3",{id:"1-\u57fa\u672c\u6982\u5ff5-1"},"1. \u57fa\u672c\u6982\u5ff5"),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"debounce(func, wait)")),(0,i.kt)("p",null,"\u81ea\u6700\u8fd1\u4e00\u6b21\u89e6\u53d1\u540e\u5ef6\u8fdf wait \u6beb\u79d2\u8c03\u7528 func\u3002"),(0,i.kt)("h3",{id:"2-\u5e94\u7528\u573a\u666f-1"},"2. \u5e94\u7528\u573a\u666f"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u6ce8\u518c\u65f6\u8f93\u5165\u5b8c\u7528\u6237\u540d\u540e\u68c0\u6d4b\u662f\u5426\u88ab\u5360\u7528\u3002"),(0,i.kt)("li",{parentName:"ul"},"\u76d1\u542c resize \u4e8b\u4ef6\u8ba1\u7b97\u5c3a\u5bf8\u4fe1\u606f\u3002")),(0,i.kt)("h3",{id:"3-\u6d41\u7a0b\u56fe-1"},"3. \u6d41\u7a0b\u56fe"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17525377/126269981-e85e1bd2-98f3-4375-b361-696d63be8505.jpg",alt:"\u9632\u6296"})),(0,i.kt)("h3",{id:"4-\u7f16\u5199\u4ee3\u7801-1"},"4. \u7f16\u5199\u4ee3\u7801"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-js"},"function debounce(func, wait) {\n let timer = null;\n\n return function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n let self = this;\n let args = arguments;\n\n timer = setTimeout(function () {\n func.apply(self, args);\n timer = null;\n }, wait);\n };\n}\n")))}m.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/dd5deefd.039b46a5.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[1734],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=a.createContext({}),p=function(e){var t=a.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return a.createElement(u.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),s=p(r),k=n,f=s["".concat(u,".").concat(k)]||s[k]||m[k]||l;return r?a.createElement(f,i(i({ref:t},c),{},{components:r})):a.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=k;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[s]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var a=r(87462),n=(r(67294),r(3905));const l={sidebar_label:"\u6846\u67b6\uff1a\u8c08\u8c08 React \u548c Vue \u7684\u533a\u522b",sidebar_position:5},i="\u8c08\u8c08 React \u548c Vue \u7684\u533a\u522b",o={unversionedId:"book4/frame-react-vs-vue",id:"book4/frame-react-vs-vue",title:"\u8c08\u8c08 React \u548c Vue \u7684\u533a\u522b",description:"\u56de\u7b54\u5173\u952e\u70b9",source:"@site/docs/book4/frame-react-vs-vue.md",sourceDirName:"book4",slug:"/book4/frame-react-vs-vue",permalink:"/awesome-interview/book4/frame-react-vs-vue",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_label:"\u6846\u67b6\uff1a\u8c08\u8c08 React \u548c Vue \u7684\u533a\u522b",sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u6846\u67b6\uff1aReact \u4e8b\u4ef6\u673a\u5236\u539f\u7406",permalink:"/awesome-interview/book4/frame-react-event-mechanism"},next:{title:"\u57fa\u7840\uff1a\u4ec0\u4e48\u662f TypeScript \u6cdb\u578b",permalink:"/awesome-interview/book4/js-ts-generics"}},u={},p=[{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. \u5f00\u53d1\u4f53\u9a8c\u7684\u533a\u522b",id:"1-\u5f00\u53d1\u4f53\u9a8c\u7684\u533a\u522b",level:3},{value:"2. \u6838\u5fc3\u6982\u5ff5\u7684\u533a\u522b",id:"2-\u6838\u5fc3\u6982\u5ff5\u7684\u533a\u522b",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],c={toc:p},s="wrapper";function m(e){let{components:t,...r}=e;return(0,n.kt)(s,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"\u8c08\u8c08-react-\u548c-vue-\u7684\u533a\u522b"},"\u8c08\u8c08 React \u548c Vue \u7684\u533a\u522b"),(0,n.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"\u63a8\u6a21\u578b\u4e0e\u62c9\u6a21\u578b")," ",(0,n.kt)("inlineCode",{parentName:"p"},"\u6a21\u677f\u4e0e JSX")),(0,n.kt)("p",null,"React \u548c Vue \u540c\u4e3a\u73b0\u4ee3\u5316\u7684 Web \u524d\u7aef\u5f00\u53d1\u6846\u67b6\u3002\u76f8\u540c\u4e4b\u5904\u90fd\u662f\u91c7\u7528\u6570\u636e\u9a71\u52a8\u89c6\u56fe\u7684\u601d\u60f3\uff0c\u4ee5\u865a\u62df DOM \u4e3a\u57fa\u7840\uff0c\u4ee5\u7ec4\u4ef6\u5316\u7684\u65b9\u5f0f\u7ec4\u7ec7\u5e94\u7528\uff0c\u8ba9\u5f00\u53d1\u8005\u65e0\u9700\u5173\u5fc3 DOM \u7ec6\u8282\uff0c\u4ece\u66f4\u9ad8\u7684\u5c42\u6b21\u8bbe\u8ba1\u5e94\u7528\u3002\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\uff0c\u5177\u4f53\u7ec4\u4ef6\u7684\u7f16\u5199\u65b9\u5f0f\uff08template vs jsx\uff09\uff0c\u6570\u636e\u54cd\u5e94\u6a21\u578b\u4ee5\u53ca\u5177\u4f53\u7684\u751f\u6001\u3002"),(0,n.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,n.kt)("h3",{id:"1-\u5f00\u53d1\u4f53\u9a8c\u7684\u533a\u522b"},"1. \u5f00\u53d1\u4f53\u9a8c\u7684\u533a\u522b"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"\u5b66\u4e60\u66f2\u7ebf")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Vue\uff1a\u65e8\u5728\u964d\u4f4e\u524d\u7aef\u5f00\u53d1\u95e8\u69db\uff0c\u5b66\u4e60\u66f2\u7ebf\u5e73\u7f13\uff0c\u5bf9\u4e86\u89e3 HTML\u3001CSS \u53ca JS \u7684\u4f20\u7edf\u6a21\u5f0f\u7684\u524d\u7aef\u5f00\u53d1\u548c\u540e\u7aef\u5f00\u53d1\u4eba\u5458\u66f4\u53cb\u597d\u3002"),(0,n.kt)("li",{parentName:"ul"},"React\uff1a\u4f20\u64ad\u81ea\u8eab\u7684\u6982\u5ff5\u548c\u601d\u60f3\uff0c\u9700\u8981\u4e86\u89e3 JSX \u7684\u76f8\u5173\u77e5\u8bc6\uff0c\u7ec4\u4ef6\u4e2d\u7684\u4e00\u5207\u90fd\u53ef\u4ee5\u901a\u8fc7 JavaScript \u7075\u6d3b\u63a7\u5236\uff0c\u4e0a\u624b\u6210\u672c\u76f8\u8f83\u4e8e Vue \u6765\u8bf4\u7565\u9ad8\u3002")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"JSX \u4e0e\u6a21\u677f\u8bed\u6cd5")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Vue\uff1a\u9ed8\u8ba4\u4f7f\u7528\u57fa\u4e8e HTML \u7684\u6a21\u677f\u8bed\u6cd5\uff0c\u5c06\u6a21\u677f\u3001\u6837\u5f0f\u53ca\u903b\u8f91\u5212\u5206\u5f00\u6765\u4f7f\u5173\u6ce8\u70b9\u5206\u79bb\u3002\u4e5f\u53ef\u4ee5\u9009\u914d JSX \u652f\u6301\u3002"),(0,n.kt)("li",{parentName:"ul"},"React\uff1a\u9ed8\u8ba4\u4f7f\u7528 JSX \u7f16\u5199\u7ec4\u4ef6\uff0c\u5c06 HTML \u548c CSS \u7ec4\u5408\u5230 JavaScript \u4e2d\u3002\u5728\u9009\u7528 TypeScript \u4f5c\u4e3a\u5f00\u53d1\u8bed\u8a00\u65f6\uff0c\u53ef\u4ee5\u66f4\u65b9\u4fbf\u7684\u6574\u5408\u76f8\u5173\u5de5\u5177\u94fe\u3002"),(0,n.kt)("li",{parentName:"ul"},"\u5173\u4e8e\u6a21\u677f\u8bed\u6cd5\u4e0e JSX \u5bf9\u6bd4\u7684\u4e00\u4e9b\u4e3e\u4f8b\uff1a",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"\u5b9a\u5236\u5316\u7684\u6a21\u677f\u8bed\u6cd5\u7cd6\u80fd\u591f\u4f7f\u7f16\u7801\u66f4\u52a0\u7b80\u6d01\uff0c\u76f8\u5e94\u7684\u662f\u7a0d\u5fae\u589e\u52a0\u4e00\u70b9\u8bb0\u5fc6\u6210\u672c\u3002"),(0,n.kt)("li",{parentName:"ul"},"JSX \u5199\u8d77\u6765\u53ef\u80fd\u7a0d\u5fae\u7e41\u7410\u4e00\u70b9\uff0c\u4f46\u5176\u4e2d\u7684\u903b\u8f91\u90fd\u662f\u539f\u751f JavaScript \u63a7\u5236\u7684\uff0c\u5728\u7406\u89e3\u4ee3\u7801\u4e0a\uff0c\u65e0\u9700\u5f15\u5165\u989d\u5916\u7684\u6982\u5ff5\u3002"),(0,n.kt)("li",{parentName:"ul"},"Vue \u5355\u6587\u4ef6\u7ec4\u4ef6\u5728\u62c6\u5206\u6a21\u677f\u65f6\uff0c\u9700\u8981\u65b0\u5efa\u7ec4\u4ef6\u3002"),(0,n.kt)("li",{parentName:"ul"},"React \u7ec4\u4ef6\u5728\u62c6\u5206 JSX \u65f6\uff0c\u53ef\u4ee5\u7075\u6d3b\u5b58\u5728\u4e8e\u53d8\u91cf\u6216\u5f53\u524d\u6587\u4ef6\u7684\u65b0\u7684\u7ec4\u4ef6\u4e2d\u3002")))),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"\u793e\u533a\u751f\u6001\u5dee\u5f02")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Vue\uff1a\u4e2d\u6587\u751f\u6001\u7e41\u8363\u3002\u504f\u5411\u5168\u5bb6\u6876\u5f0f\u7684\u96c6\u6210\u89e3\u51b3\u65b9\u6848\uff0c\u5b98\u65b9\u63d0\u4f9b\u4e86\u5f00\u7bb1\u5373\u7528\u7684 Vuex\uff0cVue Router \u7ec4\u4ef6\uff0c\u4f7f\u5f00\u53d1\u8005\u53ef\u4ee5\u4e0d\u5fc5\u7ea0\u7ed3\u4e8e\u57fa\u7840\u7ec4\u4ef6\u7684\u9009\u62e9\u3002"),(0,n.kt)("li",{parentName:"ul"},"React\uff1a\u5c06\u9009\u62e9\u6743\u4ea4\u7ed9\u5f00\u53d1\u8005\uff0c\u5e76\u6ca1\u6709\u63d0\u4f9b\u9ed8\u8ba4\u7684\u7ec4\u5408\u6a21\u677f\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u81ea\u884c\u7ec4\u5408\u793e\u533a\u4e2d\u6210\u719f\u7684\u7ec4\u4ef6\u6765\u6784\u5efa\u5e94\u7528\uff0c\u5982 React Router\uff0cRedux\uff0cMobx \u7b49\u3002")),(0,n.kt)("h3",{id:"2-\u6838\u5fc3\u6982\u5ff5\u7684\u533a\u522b"},"2. \u6838\u5fc3\u6982\u5ff5\u7684\u533a\u522b"),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},"\u6570\u636e\u54cd\u5e94\u6a21\u578b")),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Vue \u662f\u63a8\u6a21\u578b\uff0c\u5f53\u6570\u636e\u6539\u52a8\u65f6\uff0c\u754c\u9762\u4f1a\u81ea\u52a8\u66f4\u65b0\u3002",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"Vue \u901a\u8fc7 defineProperty \u76d1\u542c\u6570\u636e\u7684\u6539\u52a8\uff0c\u53ef\u4ee5\u505a\u5230\u5728\u6570\u636e\u6539\u53d8\u65f6\uff0c\u7cbe\u51c6\u7ec6\u7c92\u5ea6\u7684\u66f4\u65b0\u5bf9\u5e94\u7684\u89c6\u56fe\u3002"))),(0,n.kt)("li",{parentName:"ul"},"React \u662f\u62c9\u6a21\u578b\uff0c\u5f53\u6570\u636e\u6539\u52a8\u65f6\uff0c\u9700\u8981\u624b\u52a8\u8c03\u7528 setState \u66f4\u65b0\u754c\u9762\u3002",(0,n.kt)("ul",{parentName:"li"},(0,n.kt)("li",{parentName:"ul"},"React \u503e\u5411\u4e8e\u51fd\u6570\u5f0f\u7f16\u7a0b\uff0c",(0,n.kt)("inlineCode",{parentName:"li"},"view = f(state)"),"\uff0c\u9f13\u52b1\u4f7f\u7528\u4e0d\u53ef\u53d8\u6570\u636e\uff0c\u5f53 state \u53d1\u751f\u6539\u53d8\u65f6\uff0creact \u9ed8\u8ba4\u4f1a\u4f7f\u7528\u6d45\u6bd4\u8f83\u6765\u5bf9\u6bd4\u72b6\u6001\u7684\u5dee\u5f02\uff0c\u66f4\u5177\u5bf9\u6bd4\u7ed3\u679c\u51b3\u5b9a\u662f\u5426\u66f4\u65b0\u89c6\u56fe\u3002"))),(0,n.kt)("li",{parentName:"ul"},"\u8fd9\u4e24\u79cd\u6a21\u578b\u4e0d\u662f\u4e92\u65a5\u7684\uff0c\u5728 React \u4e2d\u53ef\u4ee5\u4f7f\u7528\u50cf MobX \u4e4b\u7c7b\u7684\u5e93\u5b9e\u73b0\u63a8\u6a21\u578b\uff1b\u5728 Vue \u4e2d\u53ef\u4ee5 freeze \u6570\u636e\uff0c\u6216\u8c03\u7528\u7ec4\u4ef6\u7684\u66f4\u65b0\u65b9\u6cd5\u5b9e\u73b0\u62c9\u6a21\u578b\u3002")),(0,n.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://v3.cn.vuejs.org/guide/introduction.html#vue-js-%E6%98%AF%E4%BB%80%E4%B9%88"},"Vue")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://reactjs.org/"},"React"))))}m.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/dfd24482.a8c9edca.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[221],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),p=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=p(e.components);return r.createElement(u.Provider,{value:n},e.children)},m="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=p(t),d=a,f=m["".concat(u,".").concat(d)]||m[d]||c[d]||l;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=d;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(87462),a=(t(67294),t(3905));const l={sidebar_label:"\u7b97\u6cd5\uff1a\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57",sidebar_position:11},i="\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57",o={unversionedId:"book4/array-repeat-number",id:"book4/array-repeat-number",title:"\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57",description:"\u9898\u76ee\u63cf\u8ff0",source:"@site/docs/book4/array-repeat-number.md",sourceDirName:"book4",slug:"/book4/array-repeat-number",permalink:"/awesome-interview/book4/array-repeat-number",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{sidebar_label:"\u7b97\u6cd5\uff1a\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57",sidebar_position:11},sidebar:"tutorialSidebar",previous:{title:"\u7f16\u7801\uff1a\u5b9e\u73b0 apply/call/bind",permalink:"/awesome-interview/book4/coding-apply-call-bind"}},u={},p=[{value:"\u9898\u76ee\u63cf\u8ff0",id:"\u9898\u76ee\u63cf\u8ff0",level:2},{value:"\u89e3\u6cd5\u4e00\uff1a \u54c8\u5e0c\u8868",id:"\u89e3\u6cd5\u4e00-\u54c8\u5e0c\u8868",level:2},{value:"\u7b97\u6cd5\u6b65\u9aa4",id:"\u7b97\u6cd5\u6b65\u9aa4",level:3},{value:"\u590d\u6742\u5ea6\u5206\u6790",id:"\u590d\u6742\u5ea6\u5206\u6790",level:3},{value:"\u89e3\u6cd5\u4e8c\uff1a \u539f\u5730\u4ea4\u6362",id:"\u89e3\u6cd5\u4e8c-\u539f\u5730\u4ea4\u6362",level:2},{value:"\u7b97\u6cd5\u6b65\u9aa4",id:"\u7b97\u6cd5\u6b65\u9aa4-1",level:3},{value:"\u590d\u6742\u5ea6\u5206\u6790",id:"\u590d\u6742\u5ea6\u5206\u6790-1",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],s={toc:p},m="wrapper";function c(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57"},"\u627e\u5230\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57"),(0,a.kt)("h2",{id:"\u9898\u76ee\u63cf\u8ff0"},"\u9898\u76ee\u63cf\u8ff0"),(0,a.kt)("p",null,"\u627e\u51fa\u6570\u7ec4\u4e2d\u91cd\u590d\u7684\u6570\u5b57\u3002"),(0,a.kt)("p",null,"\u5728\u4e00\u4e2a\u957f\u5ea6\u4e3a n \u7684\u6570\u7ec4 nums \u91cc\u7684\u6240\u6709\u6570\u5b57\u90fd\u5728 0 ~ n-1 \u7684\u8303\u56f4\u5185\u3002\u6570\u7ec4\u4e2d\u67d0\u4e9b\u6570\u5b57\u662f\u91cd\u590d\u7684\uff0c\u4f46\u4e0d\u77e5\u9053\u6709\u51e0\u4e2a\u6570\u5b57\u91cd\u590d\u4e86\uff0c\u4e5f\u4e0d\u77e5\u9053\u6bcf\u4e2a\u6570\u5b57\u91cd\u590d\u4e86\u51e0\u6b21\u3002\u8bf7\u627e\u51fa\u6570\u7ec4\u4e2d\u4efb\u610f\u4e00\u4e2a\u91cd\u590d\u7684\u6570\u5b57\u3002"),(0,a.kt)("p",null,"\u793a\u4f8b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"\u8f93\u5165\uff1a[2, 3, 1, 0, 2, 5, 3]\n\u8f93\u51fa\uff1a2 \u6216 3\n")),(0,a.kt)("h2",{id:"\u89e3\u6cd5\u4e00-\u54c8\u5e0c\u8868"},"\u89e3\u6cd5\u4e00\uff1a \u54c8\u5e0c\u8868"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/hzfe-suan-fa-shu-zu-zhong-chong-fu-shu-zi-ha-xi-biao-forked-p8df3?file=/index.html"},"\u5728\u7ebf\u94fe\u63a5")),(0,a.kt)("p",null,"\u4ece\u9898\u76ee\u4e2d\u5206\u6790\uff0c\u53ea\u9700\u8981\u627e\u5230\u4efb\u610f\u4e00\u4e2a\u91cd\u590d\u7684\u6570\u5b57\uff0c\u90a3\u4e48\u53ef\u4ee5\u5229\u7528\u54c8\u5e0c\u8868\uff0c\u7528\u6570\u5b57\u7684\u503c\u4f5c\u4e3a key \u53bb\u5b58\u50a8\uff0c\u5982\u679c\u9047\u5230\u5df2\u7ecf\u5b58\u5728\u7684 key\uff0c\u5219\u76f4\u63a5\u8fd4\u56de\uff0c\u8fd9\u6837\u5c31\u627e\u5230\u4e86\u91cd\u590d\u7684\u6570\u5b57\u3002"),(0,a.kt)("h3",{id:"\u7b97\u6cd5\u6b65\u9aa4"},"\u7b97\u6cd5\u6b65\u9aa4"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u58f0\u660e\u54c8\u5e0c\u8868\u7528\u6765\u4fdd\u5b58\u904d\u5386\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5f00\u59cb\u904d\u5386\u6570\u7ec4\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u5f53\u524d\u503c\uff0c\u5224\u65ad\u503c\u662f\u5426\u5df2\u7ecf\u5b58\u5728\uff0c\u82e5\u5b58\u5728\uff0c\u5219\u8fd4\u56de\u7ed3\u679c\u5e76\u7ed3\u675f\u5faa\u73af\uff1b\u82e5\u4e0d\u5b58\u5728\uff0c\u5219\u7ee7\u7eed\u4e0b\u4e00\u6b65\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u50a8\u5b58\u5f53\u524d\u503c\u8fdb\u54c8\u5e0c\u8868\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5904\u7406\u6570\u7ec4\u4e0b\u4e00\u4f4d\uff0c\u91cd\u590d\u76f4\u5230\u904d\u5386\u5b8c\u6210\u3002")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * @param {number[]} nums\n * @return {number}\n */\nconst findRepeatNumber = function (nums) {\n // \u5b9a\u4e49 hash \u8868\n let map = new Map();\n let i = 0;\n while (i < nums.length) {\n // \u5982\u679c\u5b58\u5728\u5f53\u524d\u6570\u5b57\uff0c\u90a3\u4e48\u76f4\u63a5\u7ed3\u675f\u5faa\u73af\uff0c\u8fd4\u56de\u5f53\u524d\u6570\u5b57\n if (map.has(nums[i])) {\n return map.get(nums[i]);\n }\n // \u50a8\u5b58\u5df2\u7ecf\u904d\u5386\u8fc7\u7684\u503c\n map.set(nums[i], nums[i]);\n i++;\n }\n};\n")),(0,a.kt)("h3",{id:"\u590d\u6742\u5ea6\u5206\u6790"},"\u590d\u6742\u5ea6\u5206\u6790"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u904d\u5386\u4e00\u904d\u6570\u7ec4\u65e2\u53ef\u5b8c\u6210\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u9700\u8981\u58f0\u660e\u54c8\u5e0c\u8868\u8fdb\u884c\u5b58\u50a8\u3002")),(0,a.kt)("h2",{id:"\u89e3\u6cd5\u4e8c-\u539f\u5730\u4ea4\u6362"},"\u89e3\u6cd5\u4e8c\uff1a \u539f\u5730\u4ea4\u6362"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://codesandbox.io/s/hzfe-suan-fa-shu-zu-zhong-chong-fu-shu-zi-yuan-di-jiao-huan-forked-bxsby?file=/index.html"},"\u5728\u7ebf\u94fe\u63a5")),(0,a.kt)("p",null,"\u6211\u4eec\u53ef\u4ee5\u628a\u6570\u7ec4\u7684\u503c\uff0c\u4ea4\u6362\u5230\u4e0e\u8be5\u503c\u76f8\u7b49\u7684\u7d22\u5f15\u7684\u4f4d\u7f6e\u3002\u5982\u679c\u4ea4\u6362\u65f6\u53d1\u73b0\uff0c\u8be5\u7d22\u5f15\u7684\u4f4d\u7f6e\u5df2\u7ecf\u5b58\u5728\u4e0e\u5f53\u524d\u503c\u76f8\u7b49\u7684\u503c\uff0c\u5219\u7ed3\u675f\u64cd\u4f5c\u5e76\u8fd4\u56de\u5f53\u524d\u503c\u3002"),(0,a.kt)("h3",{id:"\u7b97\u6cd5\u6b65\u9aa4-1"},"\u7b97\u6cd5\u6b65\u9aa4"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u904d\u5386\u6570\u7ec4\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5224\u65ad\u5f53\u524d\u503c\u548c\u7d22\u5f15\u662f\u5426\u76f8\u7b49\uff0c\u5982\u679c\u662f\uff0c\u76f4\u63a5\u8df3\u8fc7\u5904\u7406\u4e0b\u4e00\u4e2a\u5143\u7d20\uff0c\u4e0d\u662f\uff0c\u5219\u8fdb\u884c\u4e0b\u4e00\u6b65\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5224\u65ad\u9700\u8981\u4ea4\u6362\u7684\u7d22\u5f15\u4f4d\u7f6e\u7684\u503c\uff0c\u662f\u5426\u548c\u5f53\u524d\u503c\u76f8\u7b49\uff0c\u5982\u679c\u662f\uff0c\u5219\u8fd4\u56de\u5f53\u524d\u503c\u5e76\u7ed3\u675f\uff0c\u4e0d\u662f\uff0c\u5219\u8fdb\u884c\u4e0b\u4e00\u6b65\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5c06\u5f53\u524d\u503c\u548c\u5bf9\u5e94\u7d22\u5f15\u4f4d\u7f6e\u7684\u5143\u7d20\u8fdb\u884c\u4ea4\u6362\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4f9d\u6b21\u5904\u7406\u5b8c\u5168\u90e8\u5143\u7d20\u3002")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-javascript"},"/**\n * @param {number[]} nums\n * @return {number}\n */\nconst findRepeatNumber = function (nums) {\n let i = 0;\n while (i < nums.length) {\n // \u5982\u679c\u5f53\u524d\u503c\u7b49\u4e8e\u7d22\u5f15\uff0c\u90a3\u4e48\u76f4\u63a5\u8df3\u8fc7\n if (nums[i] === i) {\n i++;\n continue;\n }\n // \u5982\u679c\u9700\u8981\u4ea4\u6362\u7684\u7d22\u5f15\u4f4d\u7f6e\u5df2\u7ecf\u5b58\u5728\u76f8\u540c\u503c\uff0c\u76f4\u63a5\u7ed3\u675f\uff0c\u8fd4\u56de\u5f53\u524d\u503c\n if (nums[nums[i]] === nums[i]) {\n return nums[i];\n }\n // \u4ea4\u6362\u5f53\u524d\u503c\uff0c\u548c\u5bf9\u5e94\u7d22\u5f15\u5b58\u5728\u7684\u503c\n [nums[nums[i]], nums[i]] = [nums[i], nums[nums[i]]];\n }\n return -1;\n};\n")),(0,a.kt)("h3",{id:"\u590d\u6742\u5ea6\u5206\u6790-1"},"\u590d\u6742\u5ea6\u5206\u6790"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u65f6\u95f4\u590d\u6742\u5ea6 O(N)\uff1a\u6bcf\u4e2a\u5143\u7d20\u6700\u591a\u88ab\u79fb\u52a8 2 \u6b21\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7a7a\u95f4\u590d\u6742\u5ea6 O(1)\uff1a\u4e0d\u9700\u8981\u989d\u5916\u7684\u7a7a\u95f4\u5b8c\u6210\u3002")),(0,a.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("a",{parentName:"li",href:"https://book.douban.com/subject/6966465/"},"\u5251\u6307 offer"))))}c.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/e2f5eafd.57ff7439.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[9791],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,b=s["".concat(c,".").concat(d)]||s[d]||f[d]||a;return r?n.createElement(b,i(i({ref:t},p),{},{components:r})):n.createElement(b,i({ref:t},p))}));function b(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={sidebar_label:"\u5173\u4e8e\u6211\u4eec",sidebar_position:.4,slug:"/about"},i="\u5173\u4e8e\u6211\u4eec",l={unversionedId:"introduce",id:"introduce",title:"\u5173\u4e8e\u6211\u4eec",description:"Hi\uff0c\u6211\u4eec\u662f HZFE\uff0c\u4e00\u7fa4\u6765\u81ea\u4e8e\u4e94\u6e56\u56db\u6d77\u7684 90 \u540e\u6280\u672f\u4eba\u3002",source:"@site/docs/introduce.md",sourceDirName:".",slug:"/about",permalink:"/awesome-interview/about",draft:!1,tags:[],version:"current",sidebarPosition:.4,frontMatter:{sidebar_label:"\u5173\u4e8e\u6211\u4eec",sidebar_position:.4,slug:"/about"},sidebar:"tutorialSidebar",next:{title:"\u524d\u8a00",permalink:"/awesome-interview/"}},c={},u=[{value:"\u4e00\u4e9b\u7f18\u5206 :D",id:"\u4e00\u4e9b\u7f18\u5206-d",level:3},{value:"\u53ef\u7231\u7684\u4eba 0:)",id:"\u53ef\u7231\u7684\u4eba-0",level:3},{value:"\u505a\u4e9b\u4e1c\u897f ;\u2011)",id:"\u505a\u4e9b\u4e1c\u897f-",level:3}],p={toc:u},s="wrapper";function f(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u5173\u4e8e\u6211\u4eec"},"\u5173\u4e8e\u6211\u4eec"),(0,o.kt)("p",null,"Hi\uff0c\u6211\u4eec\u662f HZFE\uff0c\u4e00\u7fa4\u6765\u81ea\u4e8e\u4e94\u6e56\u56db\u6d77\u7684 90 \u540e\u6280\u672f\u4eba\u3002"),(0,o.kt)("h3",{id:"\u4e00\u4e9b\u7f18\u5206-d"},"\u4e00\u4e9b\u7f18\u5206 :D"),(0,o.kt)("p",null,"\u4e00\u7fa4\u56fa\u5b9a\u7684\u4eba\u603b\u805a\u5728\u4e00\u8d77\uff0c\u4e0d\u77e5\u4e0d\u89c9\u5c31\u4f1a\u6210\u4e3a\u4e00\u4e2a\u6240\u8c13\u7684\u56e2\u961f\u3002\u800c\u6211\u4eec\u7684\u56e2\u961f\u4ee3\u53f7\u201cHZFE\u201d\uff0c\u603b\u8ba9\u4e0d\u660e\u5176\u610f\u7684\u4eba\u62fc\u9519\u6216\u4e0d\u77e5\u5982\u4f55\u53d1\u97f3\u3002\u66fe\u7ecf\u5728\u6211\u4eec\u4e09\u5468\u5e74\u6d3b\u52a8\u86cb\u7cd5\u4e0a\uff0c\u5e97\u5bb6\u5c31\u7528\u5fc3\u5199\u4e0b\u4e86\u201cH2FF \u4e09\u5468\u5e74\u5feb\u4e50\u201d\u7684\u795d\u798f\u3002\u4f46\u662f\u95ee\u9898\u4e0d\u5927\uff0c\u53ea\u8981\u6211\u4eec\u4e0d\u8bf4\uff0c\u6ca1\u6709\u4eba\u4f1a\u77e5\u9053\u3002"),(0,o.kt)("p",null,"\u6211\u4eec\u6700\u521d\u76f8\u8bc6\u4e8e\u62e5\u6709 17 \u4f4d\u6210\u5458\u7684\u7fa4\u804a\uff0c\u7fa4\u804a\u540d\u79f0\u6b63\u662f HZFE\u3002\u5176\u672c\u610f\u662f\u676d\u5dde\u524d\u7aef\uff08Hangzhou Front-End\uff09\uff0c\u6240\u4ee5\u4e5f\u8bfb\u4f5c\u201c\u676d\u5dde FE\u201d\u3002\u5c3d\u7ba1\u6211\u4eec\u5927\u591a\u4e0d\u5728\u676d\u5dde\uff0c\u4e5f\u4e0d\u5168\u662f\u524d\u7aef\u3002\u6240\u4ee5\u59d1\u4e14\u5f53\u8fd9\u662f\u4e2a\u6ca1\u9053\u7406\u7684\u4ee3\u53f7\u5427\uff0c\u800c\u6211\u4eec\u7684\u76f8\u805a\u5219\u662f\u4e00\u573a\u6709\u8da3\u7684\u7f18\u5206\u3002"),(0,o.kt)("h3",{id:"\u53ef\u7231\u7684\u4eba-0"},"\u53ef\u7231\u7684\u4eba 0:)"),(0,o.kt)("p",null,"\u548c\u6bcf\u4e2a\u666e\u901a\u4eba\u4e00\u6837\uff0c\u6211\u4eec\u5927\u591a\u8fc7\u7740\u4e09\u70b9\u4e00\u7ebf\u7684\u751f\u6d3b\u3002\u559c\u6b22\u65c5\u6e38\u4e5f\u7231\u6444\u5f71\uff0c\u4e5f\u50cf\u5343\u5343\u4e07\u4e2a\u7406\u8d22\u5c0f\u767d\u4e00\u822c\uff0c\u5728\u6b63\u5411\u6216\u662f\u53cd\u5411\u7406\u8d22\u4e2d\u6765\u56de\u6ce2\u52a8\u3002\u6bcf\u5929\u90fd\u5728\u4ea7\u51fa\u65b0\u7684\u60f3\u6cd5\uff0c\u4e00\u8d77\u5934\u8111\u98ce\u66b4\uff0c\u7ed3\u5c40\u603b\u662f\u4ee5\u6ca1\u6709\u8bbe\u8ba1\u5e08\u4e3a\u501f\u53e3\u4e0d\u4e86\u4e86\u4e4b\uff0c\u4e09\u5206\u949f\u70ed\u5ea6\u6210\u4e86\u6211\u4eec\u5fc3\u7167\u4e0d\u5ba3\u7684\u9ed8\u5951\u3002\u6bcf\u5929\u90fd\u5728\u505a\u68a6\uff0c\u8bb2\u4e9b\u4e0d\u5207\u5b9e\u9645\u7684\u5e7b\u60f3\uff0c\u5e73\u51e1\u4e14\u5e73\u5eb8\u3002"),(0,o.kt)("p",null,"\u5982\u679c\u8bf4\uff0c\u552f\u4e00\u503c\u5f97\u5c0f\u5c0f\u70ab\u8000\u4e00\u756a\u7684\uff0c\u4fbf\u662f\u6211\u4eec\u8fd9\u7fa4\u4eba\u5bf9\u4e8e\u70ed\u7231\u5f00\u53d1\u8fd9\u4ef6\u4e8b\u8fbe\u6210\u4e86\u5171\u8bc6\u3002\u4e0d\u8bba\u662f\u505a\u5f00\u6e90\u3001\u505a\u81ea\u5df1\u7684\u4ea7\u54c1\u4ea6\u6216\u5404\u81ea\u5728\u5de5\u4f5c\u5c97\u4f4d\u4e0a\uff0c\u90fd\u6709\u6240\u6536\u83b7\u548c\u6210\u7ee9\u3002\u76ee\u524d\u56e2\u961f\u5f00\u6e90\u7684\u6280\u672f\u9879\u76ee\u7d2f\u8ba1 6k star \u4ee5\u4e0a\uff0c\u6210\u5458\u4e3b\u8981\u4efb\u804c\u4e8e\u817e\u8baf\u3001\u963f\u91cc\u5df4\u5df4\u3001\u5b57\u8282\u8df3\u52a8\u3001\u767e\u5ea6\u7b49\u4e00\u4e8c\u7ebf\u4e92\u8054\u7f51\u516c\u53f8\uff0c\u540c\u65f6\u4e5f\u4e0d\u4e4f\u4f18\u79c0\u7684\u4e2a\u4eba\u5f00\u53d1\u8005\u3002\u6216\u8bb8\u6211\u4eec\u4e5f\u662f\u5e78\u8fd0\u7684\uff0c\u5728\u521a\u8e0f\u5165\u793e\u4f1a\u65f6\u76f8\u9047\u76f8\u77e5\u76f8\u7231\uff0c\u5f7c\u6b64\u5f71\u54cd\uff0c\u4e00\u540c\u6210\u957f\u4e3a\u6b64\u523b\u81f3\u5c11\u6280\u672f\u8fd8\u4e0d\u8d56\u7684\u4eba\u3002"),(0,o.kt)("h3",{id:"\u505a\u4e9b\u4e1c\u897f-"},"\u505a\u4e9b\u4e1c\u897f ;\u2011)"),(0,o.kt)("p",null,"\u56e0\u7f18\u5de7\u5408\u4e0b\uff0c\u5728\u67d0\u5929\u5982\u540c\u5f80\u65e5\u7684\u5934\u8111\u98ce\u66b4\u4e2d\uff0c\u6211\u4eec\u4e00\u62cd\u8111\u888b\uff0c\u8bf4\u8981\u4e00\u8d77\u5199\u672c\u4e66\uff0c\u5c06\u4e94\u5e74\u6765\u5bf9\u4e8e\u884c\u4e1a\u9762\u8bd5\u89c4\u5219\u548c\u8d8b\u52bf\u7684\u4e86\u89e3\u6574\u7406\u6210\u518c\u3002\u5c31\u6b64\uff0c\u5f00\u542f\u4e86\u8fd9\u573a\u574e\u5777\u7684\u5199\u4f5c\u4e4b\u65c5\u3002"),(0,o.kt)("p",null,"\u6b63\u5982\u5176\u540d\uff1a\u5251\u6307\u524d\u7aef Offer\uff0c\u5e0c\u671b\u5728\u8fd9\u672c\u4e66\u7684\u5e2e\u52a9\u4e0b\uff0c\u6211\u4eec\u548c\u8bfb\u8005\u90fd\u80fd\u6709\u6240\u6210\u957f\u3002"))}f.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/e3741bf5.5a137d01.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[397],{7085:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); -------------------------------------------------------------------------------- /assets/js/f4f9ee34.40b1280a.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunkjjbook=self.webpackChunkjjbook||[]).push([[4109],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>k});var o=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),s=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},m=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=s(r),d=n,k=c["".concat(i,".").concat(d)]||c[d]||u[d]||l;return r?o.createElement(k,a(a({ref:t},m),{},{components:r})):o.createElement(k,a({ref:t},m))}));function k(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,a=new Array(l);a[0]=d;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[c]="string"==typeof e?e:n,a[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>s});var o=r(87462),n=(r(67294),r(3905));const l={sidebar_label:"\u6d4f\u89c8\u5668\uff1a\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732",sidebar_position:2},a="\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732",p={unversionedId:"book3/browser-memory-leaks",id:"book3/browser-memory-leaks",title:"\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732",description:"\u76f8\u5173\u95ee\u9898",source:"@site/docs/book3/browser-memory-leaks.md",sourceDirName:"book3",slug:"/book3/browser-memory-leaks",permalink:"/awesome-interview/book3/browser-memory-leaks",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_label:"\u6d4f\u89c8\u5668\uff1a\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732",sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u6d4f\u89c8\u5668\uff1a\u6d4f\u89c8\u5668\u4e8b\u4ef6\u5faa\u73af",permalink:"/awesome-interview/book3/browser-event-loop"},next:{title:"\u5de5\u7a0b\u5316\uff1a\u8c08\u4e0b webpack loader \u7684\u673a\u5236",permalink:"/awesome-interview/book3/engineer-webpack-loader"}},i={},s=[{value:"\u76f8\u5173\u95ee\u9898",id:"\u76f8\u5173\u95ee\u9898",level:2},{value:"\u56de\u7b54\u5173\u952e\u70b9",id:"\u56de\u7b54\u5173\u952e\u70b9",level:2},{value:"\u77e5\u8bc6\u70b9\u6df1\u5165",id:"\u77e5\u8bc6\u70b9\u6df1\u5165",level:2},{value:"1. \u6392\u67e5\u5185\u5b58\u6cc4\u6f0f\u5e38\u89c1\u95ee\u9898",id:"1-\u6392\u67e5\u5185\u5b58\u6cc4\u6f0f\u5e38\u89c1\u95ee\u9898",level:3},{value:"2. \u4f7f\u7528 Chrome DevTools \u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f",id:"2-\u4f7f\u7528-chrome-devtools-\u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f",level:3},{value:"Performance",id:"performance",level:4},{value:"Memory",id:"memory",level:4},{value:"3. Node.js \u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d",id:"3-nodejs-\u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:2}],m={toc:s},c="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(c,(0,o.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732"},"\u5982\u4f55\u5b9a\u4f4d\u5185\u5b58\u6cc4\u9732"),(0,n.kt)("h2",{id:"\u76f8\u5173\u95ee\u9898"},"\u76f8\u5173\u95ee\u9898"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\u5783\u573e\u56de\u6536\u673a\u5236")),(0,n.kt)("h2",{id:"\u56de\u7b54\u5173\u952e\u70b9"},"\u56de\u7b54\u5173\u952e\u70b9"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"\u5783\u573e\u56de\u6536")," ",(0,n.kt)("inlineCode",{parentName:"p"},"DevTools")),(0,n.kt)("p",null,"\u5185\u5b58\u6cc4\u6f0f\u662f\u6307\u4e0d\u518d\u4f7f\u7528\u7684\u5185\u5b58\uff0c\u6ca1\u6709\u88ab\u5783\u573e\u56de\u6536\u673a\u5236\u56de\u6536\u3002\u5f53\u5185\u5b58\u6cc4\u6f0f\u5f88\u5927\u6216\u8db3\u591f\u9891\u7e41\u65f6\uff0c\u7528\u6237\u4f1a\u6709\u6240\u611f\u77e5\uff1a\u8f7b\u5219\u5f71\u54cd\u5e94\u7528\u6027\u80fd\uff0c\u8868\u73b0\u4e3a\u8fdf\u7f13\u5361\u987f\uff1b\u91cd\u5219\u5bfc\u81f4\u5e94\u7528\u5d29\u6e83\uff0c\u8868\u73b0\u4e3a\u65e0\u6cd5\u6b63\u5e38\u4f7f\u7528\u3002\u4e3a\u4e86\u907f\u514d\u5185\u5b58\u6cc4\u6f0f\u5e26\u6765\u7684\u4e0d\u826f\u5f71\u54cd\uff0c\u9700\u8981\u5bf9\u5783\u573e\u56de\u6536\u673a\u5236\u8fdb\u884c\u4e86\u89e3\uff0c\u638c\u63e1\u5185\u5b58\u6cc4\u6f0f\u5206\u6790\u65b9\u6cd5\uff0c\u5b8c\u5584\u7ebf\u4e0a\u76f8\u5173\u76d1\u63a7\u63aa\u65bd\u3002"),(0,n.kt)("p",null,"\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d\u548c\u5206\u6790\u4e00\u822c\u9700\u8981\u8f85\u52a9\u5de5\u5177\uff0c\u6bd4\u5982 Chrome DevTools\u3002\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7 DevTools \u8bb0\u5f55\u9875\u9762\u6d3b\u52a8\u6982\u51b5\uff0c\u751f\u6210\u53ef\u89c6\u5316\u5206\u6790\u7ed3\u679c\uff0c\u4ece\u65f6\u95f4\u8f74\u4e2d\u76f4\u89c2\u4e86\u89e3\u5185\u5b58\u6cc4\u6f0f\u60c5\u51b5\uff1b\u5229\u7528 DevTools \u83b7\u53d6\u82e5\u5e72\u6b21\u5185\u5b58\u5feb\u7167\uff0c\u68c0\u67e5\u5185\u5b58\u5806\u6808\u53d8\u5316\uff1b\u4ee5\u53ca\u4f7f\u7528 Chrome \u4efb\u52a1\u7ba1\u7406\u5668\uff0c\u5b9e\u65f6\u76d1\u63a7\u5185\u5b58\u7684\u4f7f\u7528\u60c5\u51b5\u3002"),(0,n.kt)("h2",{id:"\u77e5\u8bc6\u70b9\u6df1\u5165"},"\u77e5\u8bc6\u70b9\u6df1\u5165"),(0,n.kt)("h3",{id:"1-\u6392\u67e5\u5185\u5b58\u6cc4\u6f0f\u5e38\u89c1\u95ee\u9898"},"1. \u6392\u67e5\u5185\u5b58\u6cc4\u6f0f\u5e38\u89c1\u95ee\u9898"),(0,n.kt)("p",null,"\u5728 JavaScript \u4e2d\uff0c\u5f53\u4e00\u4e9b\u4e0d\u518d\u9700\u8981\u7684\u6570\u636e\u4ecd\u7136\u53ef\u8fbe\u65f6\uff0cV8 \u4f1a\u8ba4\u4e3a\u8fd9\u4e9b\u6570\u636e\u4ecd\u5728\u88ab\u4f7f\u7528\uff0c\u4e0d\u4f1a\u91ca\u653e\u5185\u5b58\u3002\u4e3a\u4e86\u8c03\u8bd5\u5185\u5b58\u6cc4\u6f0f\uff0c\u6211\u4eec\u9700\u8981\u627e\u5230\u88ab\u9519\u8bef\u4fdd\u7559\u7684\u6570\u636e\uff0c\u5e76\u786e\u4fdd V8 \u80fd\u591f\u5c06\u5176\u6e05\u7406\u6389\u3002"),(0,n.kt)("p",null,"\u4ee3\u7801\u91cf\u8f83\u5c0f\u65f6\uff0c\u5f00\u53d1\u8005\u901a\u5e38\u53ef\u4ee5\u57fa\u4e8e\u4ee5\u4e0b\u57fa\u672c\u539f\u5219\u8fdb\u884c\u5feb\u901f\u81ea\u67e5\uff1a"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u662f\u5426\u6ee5\u7528\u5168\u5c40\u53d8\u91cf\uff0c\u6ca1\u6709\u624b\u52a8\u56de\u6536\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u662f\u5426\u6ca1\u6709\u6b63\u786e\u9500\u6bc1\u5b9a\u65f6\u5668\u3001\u95ed\u5305\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u662f\u5426\u6ca1\u6709\u6b63\u786e\u76d1\u542c\u4e8b\u4ef6\u548c\u9500\u6bc1\u4e8b\u4ef6\u3002")),(0,n.kt)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u501f\u52a9\u5916\u90e8\u5de5\u5177\u8fdb\u884c\u5185\u5b58\u6cc4\u6f0f\u6392\u67e5\u3002"),(0,n.kt)("h3",{id:"2-\u4f7f\u7528-chrome-devtools-\u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f"},"2. \u4f7f\u7528 Chrome DevTools \u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f"),(0,n.kt)("h4",{id:"performance"},"Performance"),(0,n.kt)("p",null,(0,n.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/129483290-b6fa5f92-2509-49af-9866-e1b08502fe51.png",alt:"image"})),(0,n.kt)("p",null,"\u6253\u5f00\u51c6\u5907\u5206\u6790\u7684\u9875\u9762\u548c DevTools \u7684 Performance \u9762\u677f\uff0c\u52fe\u9009 Memory \u5e76\u5f00\u59cb\u5f55\u5236\uff0c\u5728\u6a21\u62df\u7528\u6237\u64cd\u4f5c\u4e00\u6bb5\u65f6\u95f4\u540e\u7ed3\u675f\u5f55\u5236\uff0cDevTools \u4f1a\u5c06\u8fd9\u6bb5\u65f6\u95f4\u5185\u7684\u9875\u9762\u884c\u4e3a\u6d3b\u52a8\u8fdb\u884c\u8bb0\u5f55\u548c\u5206\u6790\u3002"),(0,n.kt)("p",null,"\u901a\u8fc7\u751f\u6210\u7684\u7ed3\u679c\u53ef\u4ee5\u76f4\u89c2\u67e5\u770b\u5230\u5185\u5b58\u65f6\u95f4\u7ebf\uff0c\u4e86\u89e3\u5185\u5b58\u968f\u65f6\u95f4\u7684\u5360\u7528\u53d8\u5316\uff0c\u5982\u679c\u5185\u5b58\u5360\u7528\u66f2\u7ebf\u6210\u9636\u68af\u72b6\u4e00\u76f4\u4e0a\u5347\uff0c\u5219\u53ef\u80fd\u5b58\u5728\u5185\u5b58\u6cc4\u6f0f\u3002\u6309\u9700\u9009\u53d6\u65f6\u95f4\u7ebf\u4e2d\u7684\u533a\u57df\u7247\u6bb5\uff0c\u68c0\u67e5\u5bf9\u5e94\u65f6\u95f4\u6bb5\u5185\u7684\u6d3b\u52a8\u7c7b\u578b\u548c\u65f6\u95f4\u5360\u7528\uff0c\u4f5c\u4e3a\u6392\u67e5\u548c\u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f\u7684\u8f85\u52a9\u529e\u6cd5\u3002"),(0,n.kt)("h4",{id:"memory"},"Memory"),(0,n.kt)("p",null,(0,n.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/130357605-39e4ffb0-f679-4331-91c0-f9958e70e8a9.png",alt:"image"})),(0,n.kt)("p",null,"\u6253\u5f00\u51c6\u5907\u5206\u6790\u7684\u9875\u9762\u548c DevTools \u7684 Memory \u9762\u677f\uff0c\u6309\u9700\u751f\u6210\u5feb\u7167\u3002\u6bcf\u4e2a\u5feb\u7167\u7684\u5185\u5bb9\u662f\u5feb\u7167\u65f6\u523b\uff0c\u8fdb\u884c\u4e00\u6b21\u5783\u573e\u56de\u6536\u540e\uff0c\u5e94\u7528\u4e2d\u6240\u6709\u53ef\u8fbe\u7684\u5bf9\u8c61\u3002"),(0,n.kt)("p",null,"\u5f53\u5f00\u53d1\u8005\u660e\u786e\u77e5\u9053\u4e0e\u5185\u5b58\u6cc4\u6f0f\u5173\u8054\u7684\u7528\u6237\u4ea4\u4e92\u6b65\u9aa4\u65f6\uff0c\u53ef\u4ee5\u751f\u6210\u591a\u6b21\u5185\u5b58\u5feb\u7167\u8fdb\u884c\u5bf9\u6bd4\uff0c\u6392\u67e5\u51fa\u6cc4\u6f0f\u7684\u5bf9\u8c61\uff1a\u5728\u505a\u7528\u6237\u4ea4\u4e92\u64cd\u4f5c\u4e4b\u524d\uff0c\u8fdb\u884c\u4e00\u6b21\u6b63\u5e38\u5185\u5b58\u5806\u6808\u4fe1\u606f\u7684\u5feb\u7167\uff1b\u5728\u505a\u7528\u6237\u4ea4\u4e92\u64cd\u4f5c\u4e2d\u6216\u64cd\u4f5c\u7ed3\u675f\u65f6\uff0c\u8fdb\u884c\u5185\u5b58\u5feb\u7167\u3002\u4f7f\u7528 Comparison \u89c6\u56fe\u6216\u4f7f\u7528 filter \u6309\u9700\u67e5\u770b\u5feb\u7167\u4e4b\u95f4\u7684\u5dee\u5f02\u3002"),(0,n.kt)("p",null,"\u4e0a\u9762\u7684\u56fe\u4e2d\u4f7f\u7528 filter \u68c0\u67e5\u5feb\u7167 2 \u548c\u5feb\u7167 3 \u7684\u5dee\u5f02\uff0c\u901a\u8fc7\u7ed3\u679c\u53ef\u77e5\u5728\u4e24\u4e2a\u5feb\u7167\u4e4b\u95f4\u6301\u7eed\u88ab\u5206\u914d clickCallback \u95ed\u5305\u3002\u901a\u8fc7\u70b9\u51fb\u6587\u4ef6\u8def\u5f84\u53ef\u4ee5\u5b9a\u4f4d\u5230\u5185\u5b58\u6cc4\u6f0f\u7684\u4ee3\u7801\u3002"),(0,n.kt)("p",null,(0,n.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/130357708-28497c8f-93f8-4afd-a53f-9506eaa3de9c.png",alt:"image"})),(0,n.kt)("h3",{id:"3-nodejs-\u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d"},"3. Node.js \u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d"),(0,n.kt)("p",null,"\u5982\u679c\u9700\u8981\u5b9a\u4f4d Node.js \u4e2d\u7684\u5185\u5b58\u6cc4\u6f0f\uff0c\u542f\u52a8 Node.js \u65f6\u5e26\u4e0a --inspect \u53c2\u6570\uff0c\u4ee5\u4fbf\u5229\u7528 Chrome DevTools \u5de5\u5177\u751f\u6210 Memory \u5feb\u7167\u6570\u636e\u3002\u5982\u56fe\u6240\u793a\uff0c\u542f\u52a8 Node.js \u670d\u52a1\u540e\uff0c\u6253\u5f00 Chrome DevTools\uff0c\u4f1a\u6709 Node \u6807\u8bc6\uff0c\u70b9\u51fb\u53ef\u4ee5\u6253\u5f00 Node \u4e13\u7528 DevTools\u3002"),(0,n.kt)("p",null,(0,n.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/17002181/130330062-c37a1085-1464-4cc9-8aa0-2f65decead03.png",alt:"image"})),(0,n.kt)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u4e5f\u53ef\u4ee5\u501f\u52a9\u7b2c\u4e09\u65b9\u5305 heapdump \u751f\u6210\u5feb\u7167\u6587\u4ef6\uff0c\u5bfc\u5165\u81f3 Chrome DevTools \u4e2d\u7684 Memory \u8fdb\u884c\u5feb\u7167\u5bf9\u6bd4\u3002"),(0,n.kt)("p",null,"\u542f\u52a8 Node.js \u65f6\u5e26\u4e0a --expose-gc \u53c2\u6570\u4ee5\u4fbf\u8c03\u7528 ",(0,n.kt)("inlineCode",{parentName:"p"},"global.gc()")," \u65b9\u6cd5\u89e6\u53d1\u5783\u573e\u56de\u6536\u3002\u501f\u52a9 ",(0,n.kt)("inlineCode",{parentName:"p"},"process.memoryUsage().heapUsed")," \u68c0\u67e5\u5185\u5b58\u5927\u5c0f\uff0c\u4f5c\u4e3a\u5185\u5b58\u6cc4\u6f0f\u7684\u8f85\u52a9\u5224\u65ad\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-js"},'const heapdump = require("heapdump");\n\nconst capture = function () {\n global.gc();\n heapdump.writeSnapshot("./HZFE_HEAPSNAPSHOT/" + Date.now() + ".heapsnapshot");\n console.log("heapUsed:", process.memoryUsage().heapUsed);\n};\n\ncapture();\n\n/* \u53ef\u80fd\u6709\u5185\u5b58\u6cc4\u6f0f\u7684\u4ee3\u7801\u7247\u6bb5 start */\n// code\n/* \u53ef\u80fd\u6709\u5185\u5b58\u6cc4\u6f0f\u7684\u4ee3\u7801\u7247\u6bb5 end */\n\ncapture();\n')),(0,n.kt)("h2",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://developer.chrome.com/docs/devtools/"},"Chrome DevTools")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://developer.chrome.com/docs/devtools/memory-problems/"},"Fix memory problems"))))}u.isMDXComponent=!0}}]); -------------------------------------------------------------------------------- /assets/js/main.a5e14537.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | object-assign 3 | (c) Sindre Sorhus 4 | @license MIT 5 | */ 6 | 7 | /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress 8 | * @license MIT */ 9 | 10 | /** 11 | * @license React 12 | * use-sync-external-store-shim.production.min.js 13 | * 14 | * Copyright (c) Facebook, Inc. and its affiliates. 15 | * 16 | * This source code is licensed under the MIT license found in the 17 | * LICENSE file in the root directory of this source tree. 18 | */ 19 | 20 | /** 21 | * Prism: Lightweight, robust, elegant syntax highlighting 22 | * 23 | * @license MIT 24 | * @author Lea Verou 25 | * @namespace 26 | * @public 27 | */ 28 | 29 | /** @license React v0.20.2 30 | * scheduler.production.min.js 31 | * 32 | * Copyright (c) Facebook, Inc. and its affiliates. 33 | * 34 | * This source code is licensed under the MIT license found in the 35 | * LICENSE file in the root directory of this source tree. 36 | */ 37 | 38 | /** @license React v16.13.1 39 | * react-is.production.min.js 40 | * 41 | * Copyright (c) Facebook, Inc. and its affiliates. 42 | * 43 | * This source code is licensed under the MIT license found in the 44 | * LICENSE file in the root directory of this source tree. 45 | */ 46 | 47 | /** @license React v17.0.2 48 | * react-dom.production.min.js 49 | * 50 | * Copyright (c) Facebook, Inc. and its affiliates. 51 | * 52 | * This source code is licensed under the MIT license found in the 53 | * LICENSE file in the root directory of this source tree. 54 | */ 55 | 56 | /** @license React v17.0.2 57 | * react.production.min.js 58 | * 59 | * Copyright (c) Facebook, Inc. and its affiliates. 60 | * 61 | * This source code is licensed under the MIT license found in the 62 | * LICENSE file in the root directory of this source tree. 63 | */ 64 | -------------------------------------------------------------------------------- /assets/js/runtime~main.a75952d5.js: -------------------------------------------------------------------------------- 1 | (()=>{"use strict";var e,a,d,f,t,r={},b={};function c(e){var a=b[e];if(void 0!==a)return a.exports;var d=b[e]={id:e,loaded:!1,exports:{}};return r[e].call(d.exports,d,d.exports,c),d.loaded=!0,d.exports}c.m=r,c.c=b,e=[],c.O=(a,d,f,t)=>{if(!d){var r=1/0;for(i=0;i=t)&&Object.keys(c.O).every((e=>c.O[e](d[o])))?d.splice(o--,1):(b=!1,t0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[d,f,t]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var t=Object.create(null);c.r(t);var r={};a=a||[null,d({}),d([]),d(d)];for(var b=2&f&&e;"object"==typeof b&&!~a.indexOf(b);b=d(b))Object.getOwnPropertyNames(b).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,c.d(t,r),t},c.d=(e,a)=>{for(var d in a)c.o(a,d)&&!c.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((a,d)=>(c.f[d](e,a),a)),[])),c.u=e=>"assets/js/"+({53:"935f2afb",221:"dfd24482",334:"505fc875",397:"e3741bf5",439:"02fa4020",737:"90b799f4",1050:"da95f3d6",1293:"9f1c36eb",1440:"3bd79dc4",1734:"dd5deefd",1906:"02fefe41",2299:"605371c8",2350:"9e3afa9a",2575:"99c95826",2596:"c48aeec7",2617:"6b15a8e7",2872:"972d49dd",3085:"1f391b9e",3253:"667a1a38",3280:"e31563f4",3751:"57076a74",3917:"3d604b8e",3989:"e420c2e8",4051:"e9fc5b99",4109:"f4f9ee34",4501:"abf449ea",5131:"5825b5f0",5211:"b728f6fe",5365:"59da24a9",5582:"7c39e10e",5722:"0ba2ede9",5851:"a757db9b",5986:"d5444868",6015:"6b1ae1c5",6099:"312ed758",6238:"d9cd0856",6283:"b948ee85",6553:"f930e7e8",6585:"d04fa17f",6686:"d9d15992",6695:"26d83c4c",6756:"520898ab",7184:"92d10100",7198:"bfa6c7fa",7259:"8584d295",7530:"223d151b",7544:"216712ef",7802:"31bf44dd",7920:"1a4e3797",8670:"ab21f6e2",8711:"4f33924b",8765:"5ba709b9",9429:"5cddde15",9500:"2ad5369a",9514:"1be78505",9591:"d4358da1",9791:"e2f5eafd"}[e]||e)+"."+{53:"ae96f8c3",221:"a8c9edca",230:"34dddfc8",272:"a34d203d",334:"611070a6",397:"5a137d01",439:"d80415df",737:"6601a4ef",1050:"ff213c15",1293:"f2d83d86",1440:"81d1364b",1734:"039b46a5",1906:"b3f9381e",2299:"71cb6ac4",2350:"0b52dd30",2384:"4861d8b1",2575:"de80d85d",2596:"94e91701",2617:"370eb108",2872:"e496a32b",3085:"a00364fc",3253:"0def7602",3280:"d05d9934",3751:"a9e996b1",3917:"a7165cd6",3989:"d885ff56",4051:"babb79cb",4109:"40b1280a",4501:"b1986ef7",4972:"bea3865f",5131:"c4348d51",5178:"6dd866d0",5211:"bba33834",5283:"79fe536c",5365:"b2082b98",5582:"72217821",5722:"56884b73",5851:"62dd77de",5986:"acde29ec",6015:"73c2607f",6099:"c38443de",6238:"cc532560",6283:"51069a20",6511:"4f41f0a7",6553:"1501d559",6585:"2a5decdb",6686:"54894bba",6695:"edef56f4",6756:"4d2ef29d",7184:"a6f541cd",7198:"1eac726c",7259:"ebf32f7e",7530:"a2893301",7544:"2205d07e",7802:"fe411772",7920:"10deaa27",8624:"ef1f3195",8670:"e3bd364c",8711:"6c95a067",8765:"3ab20d87",8894:"446f680f",9429:"3da6324e",9500:"582e9919",9514:"418dd524",9591:"05e70cb8",9791:"57ff7439"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},t="jjbook:",c.l=(e,a,d,r)=>{if(f[e])f[e].push(a);else{var b,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var t=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),t&&t.forEach((e=>e(d))),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=u.bind(null,b.onerror),b.onload=u.bind(null,b.onload),o&&document.head.appendChild(b)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),c.p="/awesome-interview/",c.gca=function(e){return e={"935f2afb":"53",dfd24482:"221","505fc875":"334",e3741bf5:"397","02fa4020":"439","90b799f4":"737",da95f3d6:"1050","9f1c36eb":"1293","3bd79dc4":"1440",dd5deefd:"1734","02fefe41":"1906","605371c8":"2299","9e3afa9a":"2350","99c95826":"2575",c48aeec7:"2596","6b15a8e7":"2617","972d49dd":"2872","1f391b9e":"3085","667a1a38":"3253",e31563f4:"3280","57076a74":"3751","3d604b8e":"3917",e420c2e8:"3989",e9fc5b99:"4051",f4f9ee34:"4109",abf449ea:"4501","5825b5f0":"5131",b728f6fe:"5211","59da24a9":"5365","7c39e10e":"5582","0ba2ede9":"5722",a757db9b:"5851",d5444868:"5986","6b1ae1c5":"6015","312ed758":"6099",d9cd0856:"6238",b948ee85:"6283",f930e7e8:"6553",d04fa17f:"6585",d9d15992:"6686","26d83c4c":"6695","520898ab":"6756","92d10100":"7184",bfa6c7fa:"7198","8584d295":"7259","223d151b":"7530","216712ef":"7544","31bf44dd":"7802","1a4e3797":"7920",ab21f6e2:"8670","4f33924b":"8711","5ba709b9":"8765","5cddde15":"9429","2ad5369a":"9500","1be78505":"9514",d4358da1:"9591",e2f5eafd:"9791"}[e]||e,c.p+c.u(e)},(()=>{var e={1303:0,532:0};c.f.j=(a,d)=>{var f=c.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var t=new Promise(((d,t)=>f=e[a]=[d,t]));d.push(f[2]=t);var r=c.p+c.u(a),b=new Error;c.l(r,(d=>{if(c.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var t=d&&("load"===d.type?"missing":d.type),r=d&&d.target&&d.target.src;b.message="Loading chunk "+a+" failed.\n("+t+": "+r+")",b.name="ChunkLoadError",b.type=t,b.request=r,f[1](b)}}),"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,d)=>{var f,t,r=d[0],b=d[1],o=d[2],n=0;if(r.some((a=>0!==e[a]))){for(f in b)c.o(b,f)&&(c.m[f]=b[f]);if(o)var i=o(c)}for(a&&a(d);n 2 | 3 | 4 | 5 | 6 | HZFE - 剑指前端 Offer 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /img/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /img/badge-192.svg: -------------------------------------------------------------------------------- 1 | 2 | badge-svg 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /img/badge-512.svg: -------------------------------------------------------------------------------- 1 | 2 | badge-svg 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /img/badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HZFE/awesome-interview/2f72768482a57cec60170a468cb8066436d1310f/img/badge.png -------------------------------------------------------------------------------- /img/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.16, written by Peter Selinger 2001-2019 9 | 10 | 12 | 26 | 37 | 42 | 49 | 57 | 59 | 62 | 65 | 67 | 70 | 74 | 80 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HZFE/awesome-interview/2f72768482a57cec60170a468cb8066436d1310f/img/favicon.ico -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "/awesome-interview/", 3 | "short_name": "剑指前端Offer", 4 | "name": "剑指前端Offer | HZFE", 5 | "start_url": "/awesome-interview/", 6 | "theme_color": "#2196f3", 7 | "background_color": "#fff", 8 | "display": "standalone", 9 | "scope": "/awesome-interview/", 10 | "icons": [ 11 | { 12 | "src": "./img/badge-192.svg", 13 | "type": "image/png", 14 | "sizes": "192x192" 15 | }, 16 | { 17 | "src": "./img/badge-512.svg", 18 | "type": "image/svg+xml", 19 | "sizes": "512x512" 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /opensearch.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | HZFE - 剑指前端 Offer 5 | Search HZFE - 剑指前端 Offer 6 | UTF-8 7 | https://febook.hzfe.org/awesome-interview/img/favicon.ico 8 | 9 | 10 | https://febook.hzfe.org/awesome-interview/ 11 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # 剑指前端 Offer 2 | 3 | [阅读地址 1](https://febook.hzfe.org/awesome-interview/) [阅读地址 2](https://hzfe.github.io/awesome-interview/) 4 | 5 | ## 互动与勘误 6 | 7 | 阅读时您可能会发现内容上的错误,可以直接在相关章节末尾的评论区进行留言,留言内容会被自动同步到仓库 Issues 中。您也可以在仓库 [Issues](https://github.com/HZFE/awesome-interview/issues) 中直接留下宝贵意见。欢迎读者对内容仓库进行 [订阅/Watch](https://github.com/hzfe/awesome-interview) 。 8 | 9 | ## 适合人群 10 | 11 | - 有意冲刺互联网大厂的前端开发者,可参考本书题目和答案提纲,自主深入学习,查漏补缺。 12 | - 短时间内参加面试的前端开发者,可借助本书快速了解面试高频的技术问题和相关解答。 13 | - 前端面试官可参考本书的题型和题目,按岗位需求对候选人进行有梯度的考察。 14 | 15 | ## Install App 16 | 17 | 18 | 19 | ## CHANGELOG 20 | 21 | #### 2023/2/19 22 | 23 | - 剑指前端 Offer 网站添加 PWA 支持 24 | 25 | #### 2022/7/04 26 | 27 | - 新增:本地存储方式及场景 28 | 29 | #### 2022/5/31 30 | 31 | - 修复:平衡二叉树 32 | 33 | #### 2022/5/05 34 | 35 | - 新增:如何对前端代码实施测试 36 | - 优化:浏览器渲染机制 37 | - 优化:浏览器跨域 38 | 39 | #### 2022/4/09 40 | 41 | - 新增:什么是 TypeScript 泛型 42 | 43 | #### 2022/3/28 44 | 45 | - 优化:浏览器事件循环 46 | - 优化:实现节流防抖函数 47 | - 新增:谈谈 React 和 Vue 的区别 48 | 49 | #### 2022/3/8 50 | 51 | - 新增:谈谈微前端 52 | 53 | #### 2022/3/7 54 | 55 | - 优化:垃圾回收机制 56 | - 优化:浏览器渲染机制 57 | 58 | #### 2022/1/21 59 | 60 | - 优化:实现 apply/call/bind 61 | 62 | #### 2022/1/20 63 | 64 | - 优化:HTTP/2 和 HTTP/1.1 的对比 65 | - 优化:前端安全 66 | - 优化:实现一个符合 Promises/A+ 规范的 Promise 67 | - 优化:webpack 工作流程 68 | 69 | #### 2022/1/19 70 | 71 | - 新增:水平垂直居中方案 72 | - 优化:React Fiber 的作用和原理 73 | 74 | #### 2022/1/18 75 | 76 | - 新增:前端路由实现 77 | - 优化:谈谈 CSS 预处理器 78 | - 优化:HOC vs Render Props vs Hooks 79 | 80 | #### 2022/1/17 81 | 82 | - 新增:React 事件机制原理 83 | - 新增:找到数组中重复的数字 84 | - 新增:实现 apply/call/bind 85 | 86 | #### 2021/11/10 87 | 88 | - 优化:React Hooks 实现原理 89 | - 优化:谈下 webpack loader 的机制 90 | 91 | #### 2021/11/09 92 | 93 | - 优化:浏览器跨域 94 | - 优化:HTTP 缓存机制 95 | - 优化:前端安全 96 | 97 | #### 2021/11/01 98 | 99 | - 优化:浏览器跨域 100 | - 优化:浏览器的重排重绘 101 | - 优化:Vue 的数据绑定机制 102 | - 优化:前端模块化规范 103 | - 优化:Babel 的原理 104 | - 优化:如何定位内存泄露 105 | - 优化:JavaScript 异步编程 106 | 107 | #### 2021/10/20 108 | 109 | - 添加:webpack 工作流程章节 110 | - 优化:HTTP/2 和 HTTP/1.1 的对比 111 | 112 | #### 2021/10/16 113 | 114 | - 优化:浏览器事件循环 115 | - 优化:二叉搜索树的第 k 大的节点 116 | - 修复:反转链表 117 | 118 | #### 2021/10/14 119 | 120 | - 添加 sitemap 121 | - 修复部分 issue 中提的 bug:JavaScript 异步编程 122 | 123 | #### 2021/10/03 124 | 125 | - 更新前言 126 | - 采纳部分 issue 中提的优化点 127 | 128 | #### 2021/09/30 129 | 130 | - 更新 algolia 搜索插件 131 | - 添加机器人账号 132 | 133 | #### 2021/09/21 134 | 135 | - 修复部分 issue 中提的 bug 136 | - 添加群聊二维码 137 | - 更新关于我们 138 | 139 | #### 2021/09/18 140 | 141 | - 添加 Vue 双向绑定章节 142 | - 添加 algolia 搜索插件 143 | - 修复部分 issue 中提的 bug 144 | - 更新 LICENSE 145 | 146 | #### 2021/09/15 147 | 148 | - 修复 issue 中提的 bug 149 | - 更新 readme 150 | 151 | #### 2021/09/14 152 | 153 | - 添加 webpack loader 章节 154 | 155 | #### 2021/09/05 156 | 157 | - 发布第一版(模拟题 1 - 3) 158 | 159 | ## Contributors 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /sitemap.xml: -------------------------------------------------------------------------------- 1 | https://febook.hzfe.org/awesome-interview/guideweekly0.5https://febook.hzfe.org/awesome-interview/searchweekly0.5https://febook.hzfe.org/awesome-interview/weekly0.5https://febook.hzfe.org/awesome-interview/aboutweekly0.5https://febook.hzfe.org/awesome-interview/book1/algorithm-balanced-binary-treesweekly0.5https://febook.hzfe.org/awesome-interview/book1/browser-cross-originweekly0.5https://febook.hzfe.org/awesome-interview/book1/browser-repain-reflowweekly0.5https://febook.hzfe.org/awesome-interview/book1/coding-promiseweekly0.5https://febook.hzfe.org/awesome-interview/book1/css-bfcweekly0.5https://febook.hzfe.org/awesome-interview/book1/engineer-webpack-workflowweekly0.5https://febook.hzfe.org/awesome-interview/book1/frame-vue-computed-watchweekly0.5https://febook.hzfe.org/awesome-interview/book1/frame-vue-data-bindingweekly0.5https://febook.hzfe.org/awesome-interview/book1/js-closuresweekly0.5https://febook.hzfe.org/awesome-interview/book1/js-module-specsweekly0.5https://febook.hzfe.org/awesome-interview/book1/network-securityweekly0.5https://febook.hzfe.org/awesome-interview/book1/topic-enter-url-display-xxweekly0.5https://febook.hzfe.org/awesome-interview/book2/algorithm-reverse-linked-listweekly0.5https://febook.hzfe.org/awesome-interview/book2/browser-garbageweekly0.5https://febook.hzfe.org/awesome-interview/book2/browser-render-mechanismweekly0.5https://febook.hzfe.org/awesome-interview/book2/coding-throttle-debounceweekly0.5https://febook.hzfe.org/awesome-interview/book2/css-preprocessorweekly0.5https://febook.hzfe.org/awesome-interview/book2/engineer-babelweekly0.5https://febook.hzfe.org/awesome-interview/book2/frame-react-fiberweekly0.5https://febook.hzfe.org/awesome-interview/book2/frame-react-hoc-hooksweekly0.5https://febook.hzfe.org/awesome-interview/book2/js-inheriteweekly0.5https://febook.hzfe.org/awesome-interview/book2/js-newweekly0.5https://febook.hzfe.org/awesome-interview/book2/network-http-cacheweekly0.5https://febook.hzfe.org/awesome-interview/book2/topic-multi-pics-site-optimizeweekly0.5https://febook.hzfe.org/awesome-interview/book3/algorithm-binary-tree-kweekly0.5https://febook.hzfe.org/awesome-interview/book3/browser-event-loopweekly0.5https://febook.hzfe.org/awesome-interview/book3/browser-memory-leaksweekly0.5https://febook.hzfe.org/awesome-interview/book3/coding-arr-to-treeweekly0.5https://febook.hzfe.org/awesome-interview/book3/css-mobile-adaptiveweekly0.5https://febook.hzfe.org/awesome-interview/book3/engineer-webpack-loaderweekly0.5https://febook.hzfe.org/awesome-interview/book3/frame-diffweekly0.5https://febook.hzfe.org/awesome-interview/book3/frame-react-hooksweekly0.5https://febook.hzfe.org/awesome-interview/book3/js-asyncweekly0.5https://febook.hzfe.org/awesome-interview/book3/js-ts-interface-typeweekly0.5https://febook.hzfe.org/awesome-interview/book3/network-http-1-2weekly0.5https://febook.hzfe.org/awesome-interview/book3/topic-white-screen-optimizationweekly0.5https://febook.hzfe.org/awesome-interview/book4/array-repeat-numberweekly0.5https://febook.hzfe.org/awesome-interview/book4/browser-local-storageweekly0.5https://febook.hzfe.org/awesome-interview/book4/browser-routerweekly0.5https://febook.hzfe.org/awesome-interview/book4/coding-apply-call-bindweekly0.5https://febook.hzfe.org/awesome-interview/book4/css-vertical-horizontal-centerweekly0.5https://febook.hzfe.org/awesome-interview/book4/engineer-front-end-testingweekly0.5https://febook.hzfe.org/awesome-interview/book4/engineer-mfaweekly0.5https://febook.hzfe.org/awesome-interview/book4/frame-react-event-mechanismweekly0.5https://febook.hzfe.org/awesome-interview/book4/frame-react-vs-vueweekly0.5https://febook.hzfe.org/awesome-interview/book4/js-ts-genericsweekly0.5 --------------------------------------------------------------------------------