From 4a1ca183f16e8cf605d5c1cb7be61f8b957ea563 Mon Sep 17 00:00:00 2001 From: "1131153523@qq.com" Date: Fri, 8 Sep 2023 10:00:20 +0800 Subject: [PATCH] changes --- ...345\275\242\351\223\276\350\241\250-ii.js" | 27 +-- src/.vitepress/theme.ts | 4 +- ...45\217\212diff\347\256\227\346\263\225.md" | 0 ...60\350\260\203\345\272\246\347\232\204.md" | 0 ...65\346\234\211\345\223\252\344\272\233.md" | 0 ...44\346\226\255\351\207\214\345\206\231.md" | 0 ...06\346\230\257\344\273\200\344\271\210.md" | 0 ...00\344\271\210\345\214\272\345\210\253.md" | 0 ...30\346\230\257\345\274\202\346\255\245.md" | 0 ...06\346\230\257\344\273\200\344\271\210.md" | 0 ...16\344\271\210\345\256\236\347\216\260.md" | 2 +- ...37\345\221\275\345\221\250\346\234\237.md" | 0 ...ux\347\232\204\345\216\237\347\220\206.md" | 0 ...45\351\201\223\345\223\252\344\272\233.md" | 0 ...73\347\273\237\345\216\237\347\220\206.md" | 0 ...ue\347\232\204\345\214\272\345\210\253.md" | 0 ...06\350\247\243\350\277\207\345\220\227.md" | 0 ...00\344\271\210\346\240\267\347\232\204.md" | 0 ...31\344\271\210\350\256\276\350\256\241.md" | 0 .../index.md" | 4 - ...47\232\204diff\347\256\227\346\263\225.md" | 0 ...73\346\230\257\345\207\275\346\225\260.md" | 0 .../11.keep-alive\345\216\237\347\220\206.md" | 0 .../12.v-model\345\216\237\347\220\206.md" | 0 ...32\344\277\241\346\226\271\345\274\217.md" | 0 ...44\345\274\217\346\241\206\346\236\266.md" | 0 ...10\344\274\230\347\274\272\347\202\271.md" | 0 ...56\347\232\204\347\220\206\350\247\243.md" | 0 ...25\345\256\236\347\216\260\347\232\204.md" | 0 ...25\345\256\236\347\216\260\347\232\204.md" | 0 ...er\345\207\275\346\225\260\347\232\204.md" | 0 ...52\344\272\233\344\274\230\345\214\226.md" | 0 ...60\347\273\204\345\217\230\345\214\226.md" | 0 ...25\345\256\236\347\216\260\347\232\204.md" | 0 ...47\347\232\204\347\233\221\345\220\254.md" | 0 .../frontend-advanced/vue/Vue2/index.md | 0 ...52\344\272\233\344\274\230\345\214\226.md" | 0 ...00\344\271\210\345\214\272\345\210\253.md" | 0 ...ex\347\232\204\345\214\272\345\210\253.md" | 0 ...xy\347\232\204\345\214\272\345\210\253.md" | 0 ...241\273\346\220\255\351\205\215Reflect.md" | 0 ...52\344\272\233\344\274\230\345\214\226.md" | 0 .../frontend-advanced/vue/Vue3/index.md | 0 src/frontend-basic/html/index.md | 23 +- .../\351\235\242\350\257\225\351\242\230.md" | 20 -- .../index.md" | 0 .../\345\256\236\347\216\260Promise A+.md" | 0 ...47\216\260ajax\350\257\267\346\261\202.md" | 0 ...45\222\214call\345\207\275\346\225\260.md" | 0 ...7\216\260async\345\207\275\346\225\260.md" | 0 ...47\216\260bind\345\207\275\346\225\260.md" | 0 .../\345\256\236\347\216\260new.md" | 0 .../\345\256\236\347\216\260redux.md" | 0 ...60\346\237\257\351\207\214\345\214\226.md" | 0 ...75\346\225\260\347\273\204\345\220\210.md" | 0 ...47\346\225\260\347\233\270\345\212\240.md" | 0 ...63\351\223\272\345\207\275\346\225\260.md" | 0 ...60\346\267\261\346\213\267\350\264\235.md" | 0 ...36\347\216\260\347\273\247\346\211\277.md" | 0 ...26\345\222\214\350\212\202\346\265\201.md" | 0 ...17\346\227\245\345\255\246\344\271\240.md" | 5 +- ...15\347\253\257\351\235\242\347\273\217.md" | 140 ------------ ...76\346\213\233\351\235\242\347\273\217.md" | 206 ------------------ src/interview/index.md | 23 +- ...00\344\271\210\347\272\277\347\250\213.md" | 12 - ...04\345\273\272\346\265\201\347\250\213.md" | 10 - ...47\350\241\214\346\265\201\347\250\213.md" | 29 --- .../index.md" | 4 - 68 files changed, 58 insertions(+), 451 deletions(-) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" => "src/frontend-advanced/React/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" => "src/frontend-advanced/React/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" => "src/frontend-advanced/React/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" => "src/frontend-advanced/React/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" => "src/frontend-advanced/React/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" => "src/frontend-advanced/React/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" => "src/frontend-advanced/React/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" => "src/frontend-advanced/React/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" (100%) rename "src/frontend-advanced/React/\344\270\200\344\270\252\347\256\200\345\215\225\350\260\203\345\272\246\345\231\250\347\232\204\345\256\236\347\216\260.md" => "src/frontend-advanced/React/17.React\347\232\204\350\260\203\345\272\246\345\231\250\346\200\216\344\271\210\345\256\236\347\216\260.md" (97%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" => "src/frontend-advanced/React/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/3.Redux\347\232\204\345\216\237\347\220\206.md" => "src/frontend-advanced/React/3.Redux\347\232\204\345\216\237\347\220\206.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" => "src/frontend-advanced/React/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" => "src/frontend-advanced/React/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" => "src/frontend-advanced/React/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" => "src/frontend-advanced/React/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" => "src/frontend-advanced/React/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" (100%) rename "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" => "src/frontend-advanced/React/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" (100%) delete mode 100644 "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/index.md" rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/1.vue2\347\232\204diff\347\256\227\346\263\225.md" => "src/frontend-advanced/vue/Vue2/1.vue2\347\232\204diff\347\256\227\346\263\225.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" => "src/frontend-advanced/vue/Vue2/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/11.keep-alive\345\216\237\347\220\206.md" => "src/frontend-advanced/vue/Vue2/11.keep-alive\345\216\237\347\220\206.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/12.v-model\345\216\237\347\220\206.md" => "src/frontend-advanced/vue/Vue2/12.v-model\345\216\237\347\220\206.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" => "src/frontend-advanced/vue/Vue2/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" => "src/frontend-advanced/vue/Vue2/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" => "src/frontend-advanced/vue/Vue2/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" => "src/frontend-advanced/vue/Vue2/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" => "src/frontend-advanced/vue/Vue2/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" => "src/frontend-advanced/vue/Vue2/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" => "src/frontend-advanced/vue/Vue2/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" => "src/frontend-advanced/vue/Vue2/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" => "src/frontend-advanced/vue/Vue2/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" => "src/frontend-advanced/vue/Vue2/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" => "src/frontend-advanced/vue/Vue2/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" (100%) rename "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/index.md" => src/frontend-advanced/vue/Vue2/index.md (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" => "src/frontend-advanced/vue/Vue3/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" => "src/frontend-advanced/vue/Vue3/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" => "src/frontend-advanced/vue/Vue3/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" => "src/frontend-advanced/vue/Vue3/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" => "src/frontend-advanced/vue/Vue3/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" => "src/frontend-advanced/vue/Vue3/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" (100%) rename "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/index.md" => src/frontend-advanced/vue/Vue3/index.md (100%) delete mode 100644 "src/frontend-basic/html/\351\235\242\350\257\225\351\242\230.md" rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/index.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/index.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260Promise A+.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260Promise A+.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260new.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260new.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260redux.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260redux.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" (100%) rename "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" => "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" (100%) delete mode 100644 "src/interview/1. \345\255\227\350\212\202\350\267\263\345\212\250\345\211\215\347\253\257\351\235\242\347\273\217.md" delete mode 100644 "src/interview/2.\351\207\221\344\270\211\351\223\266\345\233\233\347\232\204\345\211\215\347\253\257\347\244\276\346\213\233\351\235\242\347\273\217.md" delete mode 100644 "src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/1.\346\265\217\350\247\210\345\231\250\351\203\275\346\234\211\345\223\252\344\272\233\350\277\233\347\250\213\357\274\214\346\270\262\346\237\223\350\277\233\347\250\213\344\270\255\351\203\275\346\234\211\344\273\200\344\271\210\347\272\277\347\250\213.md" delete mode 100644 "src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/2.\347\256\200\345\215\225\350\257\264\344\270\200\344\270\213webpack\347\232\204\346\236\204\345\273\272\346\265\201\347\250\213.md" delete mode 100644 "src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/3.npm install\347\232\204\346\211\247\350\241\214\346\265\201\347\250\213.md" delete mode 100644 "src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/index.md" diff --git "a/code/algorithm/142.\347\216\257\345\275\242\351\223\276\350\241\250-ii.js" "b/code/algorithm/142.\347\216\257\345\275\242\351\223\276\350\241\250-ii.js" index 6c75ad7608..bac6742167 100644 --- "a/code/algorithm/142.\347\216\257\345\275\242\351\223\276\350\241\250-ii.js" +++ "b/code/algorithm/142.\347\216\257\345\275\242\351\223\276\350\241\250-ii.js" @@ -20,22 +20,23 @@ var detectCycle = function (head) { let fast = head; let slow = head; - while (fast && fast.next) { - fast = fast.next.next; - slow = slow.next; - // 快慢指针重合 - if (slow === fast) { - // 从链表首节点开始 + + while(fast && fast.next) { + fast = fast.next.next + slow = slow.next + + if (fast === slow) { + let index = head; let index1 = fast; - // 从相交点开始 - let index2 = head; - while (index1 !== index2) { - index1 = index1.next; - index2 = index2.next; + + while(index !== index1) { + index = index.next + index1 = index1.next } - return index2; + + return index } } - return null; + return null }; // @lc code=end diff --git a/src/.vitepress/theme.ts b/src/.vitepress/theme.ts index eee41754a3..8f33b52932 100644 --- a/src/.vitepress/theme.ts +++ b/src/.vitepress/theme.ts @@ -15,7 +15,8 @@ export const nav = [ { text: '前端工程化', link: '/frontend-engineering/' - } + }, + { text: '前端面经汇总', link: '/interview/' } ] }, { @@ -34,7 +35,6 @@ export const nav = [ { text: '后端开发', link: '/backend/' }, { text: '开发工具', link: '/tools/' }, { text: '随笔', link: '/informal/' }, - { text: '面经', link: '/interview/' }, { text: 'Rust', link: '/rust-learn/' }, { text: '留言板', link: '/comment/' } ]; diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" "b/src/frontend-advanced/React/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" rename to "src/frontend-advanced/React/1.React\344\270\255Key\347\232\204\344\275\234\347\224\250\344\273\245\345\217\212diff\347\256\227\346\263\225.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" "b/src/frontend-advanced/React/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" rename to "src/frontend-advanced/React/10.React\346\230\257\345\246\202\344\275\225\345\256\236\347\216\260\350\260\203\345\272\246\347\232\204.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" "b/src/frontend-advanced/React/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" rename to "src/frontend-advanced/React/11.React\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226\346\211\213\346\256\265\346\234\211\345\223\252\344\272\233.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" "b/src/frontend-advanced/React/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" rename to "src/frontend-advanced/React/12.React\347\232\204Hooks\344\270\272\344\273\200\344\271\210\344\270\215\350\203\275\345\234\250\346\235\241\344\273\266\345\210\244\346\226\255\351\207\214\345\206\231.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" "b/src/frontend-advanced/React/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" rename to "src/frontend-advanced/React/13.React\347\232\204jsx\350\257\255\346\263\225\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" "b/src/frontend-advanced/React/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" rename to "src/frontend-advanced/React/14.React\347\232\204\347\261\273\347\273\204\344\273\266\345\222\214\345\207\275\346\225\260\345\274\217\347\273\204\344\273\266\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" "b/src/frontend-advanced/React/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" rename to "src/frontend-advanced/React/15.React\344\270\255setState\346\230\257\345\220\214\346\255\245\350\277\230\346\230\257\345\274\202\346\255\245.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" "b/src/frontend-advanced/React/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" rename to "src/frontend-advanced/React/16.React.lazy\347\232\204\345\216\237\347\220\206\346\230\257\344\273\200\344\271\210.md" diff --git "a/src/frontend-advanced/React/\344\270\200\344\270\252\347\256\200\345\215\225\350\260\203\345\272\246\345\231\250\347\232\204\345\256\236\347\216\260.md" "b/src/frontend-advanced/React/17.React\347\232\204\350\260\203\345\272\246\345\231\250\346\200\216\344\271\210\345\256\236\347\216\260.md" similarity index 97% rename from "src/frontend-advanced/React/\344\270\200\344\270\252\347\256\200\345\215\225\350\260\203\345\272\246\345\231\250\347\232\204\345\256\236\347\216\260.md" rename to "src/frontend-advanced/React/17.React\347\232\204\350\260\203\345\272\246\345\231\250\346\200\216\344\271\210\345\256\236\347\216\260.md" index 8dc37f68ac..99f42d69d7 100644 --- "a/src/frontend-advanced/React/\344\270\200\344\270\252\347\256\200\345\215\225\350\260\203\345\272\246\345\231\250\347\232\204\345\256\236\347\216\260.md" +++ "b/src/frontend-advanced/React/17.React\347\232\204\350\260\203\345\272\246\345\231\250\346\200\216\344\271\210\345\256\236\347\216\260.md" @@ -1,7 +1,7 @@ --- order: 1 --- -# 一个简单调度器的实现 +# React的调度器怎么实现 ```js diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" "b/src/frontend-advanced/React/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" rename to "src/frontend-advanced/React/2.React\347\232\204\347\224\237\345\221\275\345\221\250\346\234\237.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/3.Redux\347\232\204\345\216\237\347\220\206.md" "b/src/frontend-advanced/React/3.Redux\347\232\204\345\216\237\347\220\206.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/3.Redux\347\232\204\345\216\237\347\220\206.md" rename to "src/frontend-advanced/React/3.Redux\347\232\204\345\216\237\347\220\206.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" "b/src/frontend-advanced/React/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" rename to "src/frontend-advanced/React/4.React\345\206\205\347\275\256\347\232\204Hooks\344\275\240\347\237\245\351\201\223\345\223\252\344\272\233.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" "b/src/frontend-advanced/React/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" rename to "src/frontend-advanced/React/5.React\347\232\204\344\272\213\344\273\266\347\263\273\347\273\237\345\216\237\347\220\206.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" "b/src/frontend-advanced/React/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" rename to "src/frontend-advanced/React/6.React\345\222\214Vue\347\232\204\345\214\272\345\210\253.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" "b/src/frontend-advanced/React/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" rename to "src/frontend-advanced/React/7.React\347\232\204Hooks\351\227\255\345\214\205\351\231\267\351\230\261\344\272\206\350\247\243\350\277\207\345\220\227.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" "b/src/frontend-advanced/React/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" rename to "src/frontend-advanced/React/8.React\347\232\204\346\236\266\346\236\204\346\230\257\344\273\200\344\271\210\346\240\267\347\232\204.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" "b/src/frontend-advanced/React/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" similarity index 100% rename from "src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" rename to "src/frontend-advanced/React/9.React\344\270\255fiber\346\230\257\344\273\200\344\271\210\357\274\237\344\270\272\344\273\200\344\271\210\350\277\231\344\271\210\350\256\276\350\256\241.md" diff --git "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/index.md" "b/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/index.md" deleted file mode 100644 index bfe47a41f4..0000000000 --- "a/src/frontend-advanced/React/React\351\235\242\350\257\225\351\242\230/index.md" +++ /dev/null @@ -1,4 +0,0 @@ ---- -index: false ---- -# React面试题 \ No newline at end of file diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/1.vue2\347\232\204diff\347\256\227\346\263\225.md" "b/src/frontend-advanced/vue/Vue2/1.vue2\347\232\204diff\347\256\227\346\263\225.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/1.vue2\347\232\204diff\347\256\227\346\263\225.md" rename to "src/frontend-advanced/vue/Vue2/1.vue2\347\232\204diff\347\256\227\346\263\225.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" "b/src/frontend-advanced/vue/Vue2/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" rename to "src/frontend-advanced/vue/Vue2/10.data\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\230\257\345\207\275\346\225\260.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/11.keep-alive\345\216\237\347\220\206.md" "b/src/frontend-advanced/vue/Vue2/11.keep-alive\345\216\237\347\220\206.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/11.keep-alive\345\216\237\347\220\206.md" rename to "src/frontend-advanced/vue/Vue2/11.keep-alive\345\216\237\347\220\206.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/12.v-model\345\216\237\347\220\206.md" "b/src/frontend-advanced/vue/Vue2/12.v-model\345\216\237\347\220\206.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/12.v-model\345\216\237\347\220\206.md" rename to "src/frontend-advanced/vue/Vue2/12.v-model\345\216\237\347\220\206.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" "b/src/frontend-advanced/vue/Vue2/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" rename to "src/frontend-advanced/vue/Vue2/13.Vue\344\270\255\347\273\204\344\273\266\351\200\232\344\277\241\346\226\271\345\274\217.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" "b/src/frontend-advanced/vue/Vue2/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" rename to "src/frontend-advanced/vue/Vue2/14.\344\273\200\344\271\210\346\230\257\345\243\260\346\230\216\345\274\217\345\222\214\345\221\275\344\273\244\345\274\217\346\241\206\346\236\266.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" "b/src/frontend-advanced/vue/Vue2/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" rename to "src/frontend-advanced/vue/Vue2/15.\350\231\232\346\213\237dom\346\230\257\344\273\200\344\271\210\346\234\211\344\273\200\344\271\210\344\274\230\347\274\272\347\202\271.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" "b/src/frontend-advanced/vue/Vue2/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" rename to "src/frontend-advanced/vue/Vue2/2.\350\257\264\344\270\200\344\270\213\345\223\215\345\272\224\345\274\217\346\225\260\346\215\256\347\232\204\347\220\206\350\247\243.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" "b/src/frontend-advanced/vue/Vue2/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" rename to "src/frontend-advanced/vue/Vue2/3.\350\257\264\344\270\200\344\270\213computed\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" "b/src/frontend-advanced/vue/Vue2/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" rename to "src/frontend-advanced/vue/Vue2/4.\350\257\264\344\270\200\344\270\213nextTick\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" "b/src/frontend-advanced/vue/Vue2/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" rename to "src/frontend-advanced/vue/Vue2/5.vue\347\232\204\346\250\241\346\235\277\346\230\257\346\200\216\344\271\210\347\274\226\350\257\221\346\210\220render\345\207\275\346\225\260\347\232\204.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" "b/src/frontend-advanced/vue/Vue2/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" rename to "src/frontend-advanced/vue/Vue2/6.\350\257\264\344\270\200\344\270\213vue2\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\346\234\211\345\223\252\344\272\233\344\274\230\345\214\226.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" "b/src/frontend-advanced/vue/Vue2/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" rename to "src/frontend-advanced/vue/Vue2/7.\350\257\264\344\270\200\344\270\213Vue\345\246\202\344\275\225\346\243\200\346\265\213\346\225\260\347\273\204\345\217\230\345\214\226.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" "b/src/frontend-advanced/vue/Vue2/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" rename to "src/frontend-advanced/vue/Vue2/8.\350\257\264\344\270\200\344\270\213watch\345\246\202\344\275\225\345\256\236\347\216\260\347\232\204.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" "b/src/frontend-advanced/vue/Vue2/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" rename to "src/frontend-advanced/vue/Vue2/9.\344\270\272\344\273\200\344\271\210vue\346\262\241\346\234\211\346\217\220\344\276\233\345\257\271\346\225\260\347\273\204\345\261\236\346\200\247\347\232\204\347\233\221\345\220\254.md" diff --git "a/src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/index.md" b/src/frontend-advanced/vue/Vue2/index.md similarity index 100% rename from "src/frontend-advanced/vue/Vue2\351\235\242\350\257\225\351\242\230/index.md" rename to src/frontend-advanced/vue/Vue2/index.md diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" "b/src/frontend-advanced/vue/Vue3/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" rename to "src/frontend-advanced/vue/Vue3/1.\350\257\264\344\270\200\344\270\213vue3\347\233\270\346\257\224vue2\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" "b/src/frontend-advanced/vue/Vue3/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" rename to "src/frontend-advanced/vue/Vue3/2.Vue2\345\222\214Vue3\347\232\204diff\347\256\227\346\263\225\346\234\211\344\273\200\344\271\210\345\214\272\345\210\253.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" "b/src/frontend-advanced/vue/Vue3/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" rename to "src/frontend-advanced/vue/Vue3/3.pinia\345\222\214vuex\347\232\204\345\214\272\345\210\253.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" "b/src/frontend-advanced/vue/Vue3/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" rename to "src/frontend-advanced/vue/Vue3/4.defineProperty\345\222\214Proxy\347\232\204\345\214\272\345\210\253.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" "b/src/frontend-advanced/vue/Vue3/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" rename to "src/frontend-advanced/vue/Vue3/5.Proxy\344\270\272\344\273\200\344\271\210\345\277\205\351\241\273\346\220\255\351\205\215Reflect.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" "b/src/frontend-advanced/vue/Vue3/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" rename to "src/frontend-advanced/vue/Vue3/6.Vue3\347\232\204\346\250\241\346\235\277\347\274\226\350\257\221\345\201\232\344\272\206\345\223\252\344\272\233\344\274\230\345\214\226.md" diff --git "a/src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/index.md" b/src/frontend-advanced/vue/Vue3/index.md similarity index 100% rename from "src/frontend-advanced/vue/Vue3\351\235\242\350\257\225\351\242\230/index.md" rename to src/frontend-advanced/vue/Vue3/index.md diff --git a/src/frontend-basic/html/index.md b/src/frontend-basic/html/index.md index a0a82f9bb3..4bc8e7211b 100644 --- a/src/frontend-basic/html/index.md +++ b/src/frontend-basic/html/index.md @@ -1,7 +1,20 @@ ---- -icon: html -index: false ---- # HTML -123 \ No newline at end of file +## 1. Doctype 作用 + +DOCTYPE 是用来声明文档类型和 DTD 规范的。 ``声明位于 HTML 文档中的第一行,不是一个 HTML 标签,处于 html 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。 + +## 2. 对 HTML 语义化的理解 + +语义化的优点如下: + +- 有利于 SEO +- 增强了可读性,便于团队的开发与维护 +- 无障碍阅读 + +## 3. script 标签中 defer 和 async 的区别 + +默认会下载资源,等资源下载完成后再执行代码 + +**defer:** 遇到 script 标签,直接下载,等待 HTML 解析完成之后,再执行脚本 +**async:** 遇到 script 标签,直接下载,不阻塞 HTML 解析,当下载完成后,直接执行,可能会阻塞部分 HTML 解析 diff --git "a/src/frontend-basic/html/\351\235\242\350\257\225\351\242\230.md" "b/src/frontend-basic/html/\351\235\242\350\257\225\351\242\230.md" deleted file mode 100644 index c2800e5b4b..0000000000 --- "a/src/frontend-basic/html/\351\235\242\350\257\225\351\242\230.md" +++ /dev/null @@ -1,20 +0,0 @@ -# 面试题 - -## 1. Doctype 作用 - -DOCTYPE 是用来声明文档类型和 DTD 规范的。 ``声明位于 HTML 文档中的第一行,不是一个 HTML 标签,处于 html 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE 不存在或格式不正确会导致文档以兼容模式呈现。 - -## 2. 对 HTML 语义化的理解 - -语义化的优点如下: - -- 有利于 SEO -- 增强了可读性,便于团队的开发与维护 -- 无障碍阅读 - -## 3. script 标签中 defer 和 async 的区别 - -默认会下载资源,等资源下载完成后再执行代码 - -**defer:** 遇到 script 标签,直接下载,等待 HTML 解析完成之后,再执行脚本 -**async:** 遇到 script 标签,直接下载,不阻塞 HTML 解析,当下载完成后,直接执行,可能会阻塞部分 HTML 解析 diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/index.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/index.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/index.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/index.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260Promise A+.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260Promise A+.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260Promise A+.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260Promise A+.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260ajax\350\257\267\346\261\202.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260apply\345\222\214call\345\207\275\346\225\260.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260async\345\207\275\346\225\260.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260bind\345\207\275\346\225\260.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260new.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260new.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260new.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260new.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260redux.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260redux.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260redux.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260redux.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\346\237\257\351\207\214\345\214\226.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\207\275\346\225\260\347\273\204\345\220\210.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\345\244\247\346\225\260\347\233\270\345\212\240.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\225\260\347\273\204\345\271\263\351\223\272\345\207\275\346\225\260.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\346\267\261\346\213\267\350\264\235.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\347\273\247\346\211\277.md" diff --git "a/src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" "b/src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" similarity index 100% rename from "src/frontend-basic/js/\346\211\213\345\206\231\351\235\242\350\257\225\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" rename to "src/frontend-basic/js/\346\211\213\345\206\231\351\242\230/\345\256\236\347\216\260\351\230\262\346\212\226\345\222\214\350\212\202\346\265\201.md" diff --git "a/src/informal/\346\257\217\346\227\245\345\255\246\344\271\240.md" "b/src/informal/\346\257\217\346\227\245\345\255\246\344\271\240.md" index 1dbd591433..0bf4ca344b 100644 --- "a/src/informal/\346\257\217\346\227\245\345\255\246\344\271\240.md" +++ "b/src/informal/\346\257\217\346\227\245\345\255\246\344\271\240.md" @@ -36,4 +36,7 @@ var removeElements = function (head, val) { 4. 算法:环形链表 -5. 算法:相交链表 \ No newline at end of file +5. 算法:相交链表 + +## 2023-09-08 +1. 环形链表 II \ No newline at end of file diff --git "a/src/interview/1. \345\255\227\350\212\202\350\267\263\345\212\250\345\211\215\347\253\257\351\235\242\347\273\217.md" "b/src/interview/1. \345\255\227\350\212\202\350\267\263\345\212\250\345\211\215\347\253\257\351\235\242\347\273\217.md" deleted file mode 100644 index cf6f4d0aad..0000000000 --- "a/src/interview/1. \345\255\227\350\212\202\350\267\263\345\212\250\345\211\215\347\253\257\351\235\242\347\273\217.md" +++ /dev/null @@ -1,140 +0,0 @@ -# 字节跳动前端面经 - -[面经链接](https://www.nowcoder.com/discuss/702216?type=all&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_all_nctrack&gio_id=20F1EB59F6FD31FAD435BEE8B652A731-1641826247965) - -## 一面 - -### 算法题:路径总和 - -```js -/** - * @param {TreeNode} root - * @param {number} targetSum - * @return {boolean} - */ -var hasPathSum = function (root, targetSum) { - // 空节点 没找到这条路径 - if (!root) return false; - // 找到 - if (!root.left && !root.right && targetSum === root.val) return true; - - return ( - hasPathSum(root.left, targetSum - root.val) || - hasPathSum(root.right, targetSum - root.val) - ); -}; -``` - -### 手写 reduce - -```js -Array.prototype.reduce = function (callback, pre) { - let res = pre; - this.forEach((item, index) => { - res = callback(res, item, index, this); - }); - return res; -}; -``` - -### 讲一下浏览器缓存 - -浏览器缓存,从请求的优先级依次为 - -1. Memory Cache -2. Service Worker Cache -3. HTTP Cache -4. Push Cache - -#### HTTP 缓存 - -强缓存 - -- expires - - 通过 `绝对的时间戳` 来控制缓存过期时间 -- cache-control - - max-age 字段通过 `相对的时间长度` 来控制缓存过期时间 - - s-maxage 优先级比 max-age 更高,用于`代理服务器的缓存`(并且`只在代理服务器中生效`,客户端不考虑该字段) - - 如果设置了 public 字段,它`既可以被浏览器缓存,也可以被代理服务器缓存` - - 如果设置了 private 字段,`只能被浏览器缓存` - - no-cache 字段会跳过`强缓存` - - no-store 字段会跳过`强缓存`和`协商缓存` - -协商缓存 - -- Last-Modified 和 If-Modified-Since - - - 如果响应的前后时间发生变化,代表资源有变化,重新返回新数据 - - 缺点:编辑了文件,但是没有改变内容,例如改变后又撤回。服务器无法知道是否真的改变,还是会返回新资源 - - 缺点:修改文件太快,服务器无法监听到文件变化 - -- ETag 和 If-None-Match - - Etag 在感知文件变化上比 Last-Modified 更加准确,优先级也更高。当 Etag 和 Last-Modified 同时存在时,以 Etag 为准 - - 缺点:Etag 的生成过程需要服务器额外付出开销, 会影响服务端的性能 - -### vue 和 react 的区别 - -以下出自 `@尤雨溪` 尤大的观点: - -- Vue 使用的是 web 开发者更熟悉的模板与特性,React 的特色在于`函数式编程`的理念和丰富的技术选型,Vue 比起 React 更容易被前端工程师接受。 - -- 实现上,Vue 跟 React 的`最大区别`在于数据的 reactivity,就是`响应式系统`上。 - - Vue 提供反应式的数据,当数据改动时,界面就会自动更新,而 React 里面需要调用方法 SetState。我把两者分别称为`Push-based`和`Pull-based` - - 所谓`Push-based`就是说,改动数据之后,`数据本身会把这个改动推送出去`,告知渲染系统自动进行渲染。在 React 里面,它是一个 Pull 的形式,`用户要给系统一个明确的信号说明现在需要重新渲染了`,这个系统才会重新渲染。 - -当然以上的回答,只是两者的一部分区别,我认为还有下面这些区别 - -- API 差异,vue 的 api 非常多,而 react 相对少很多 -- vue 可以在编译时阶段优化,但是 react 只能优化运行时 -- 架构层面的区别:vue 包含`响应式系统`, `compiler`,`运行时过程`。react 包含,`调度器`,`协调器`,`渲染器` - -### hooks 用过吗?聊聊 react 中 class 组件和函数组件的区别 - -**从 API 层面来讲**,class 组件是个类,需要继承`React.Component`, 上包含很多声明周期,以及方法,并且需要保存状态。 -而函数式组件,是一个函数,没有像类组件那么多的声明周期,方法和属性,不需要保存状态 - -**从使用层面来讲**,函数式组件能够更好的`拆分和复用逻辑` - -**从源码层面来讲** - -### 前端性能优化你会怎么做 - -- 网络:图片懒加载,雪碧图,gzip, http 缓存,cdn -- webpack: splitChunk, tree-shaking, terser 压缩,dll -- 其他:减少回流重绘 - -## 二面 - -### 算法题 - -fn([['a', 'b'], ['n', 'm'], ['0', '1']]) => ['an0', 'am0', 'an1', 'am1', 'bn0', 'bm0', 'bn1', 'bm0'] - -一道简单的回溯题,有点像电话号码组合那道题 - -```js -function test(arr) { - const res = []; - function fn(index, path) { - if (path.length === arr.length) { - res.push([...path]); - return; - } - for (let i = 0; i < arr[index].length; i++) { - fn(index + 1, path.concat(arr[index][i])); - } - } - return res; -} -``` - -### 事件代理是什么 - -事件代理就是利用了冒泡事件,例如 click 事件,只需要在父节点上绑定,触发了子节点的 click 时间,就会冒泡到父节点,减少事件绑定。 -好处: - -1. 减少 dom 操作,提高性能 -2. 添加子元素,自动会有处理事件 - -### Tcp 和 Udp 的区别 - -[Tcp 和 Udp 的区别](/basic/计算机网络/TCP/TCP和UDP区别) diff --git "a/src/interview/2.\351\207\221\344\270\211\351\223\266\345\233\233\347\232\204\345\211\215\347\253\257\347\244\276\346\213\233\351\235\242\347\273\217.md" "b/src/interview/2.\351\207\221\344\270\211\351\223\266\345\233\233\347\232\204\345\211\215\347\253\257\347\244\276\346\213\233\351\235\242\347\273\217.md" deleted file mode 100644 index 0da0f6ca0f..0000000000 --- "a/src/interview/2.\351\207\221\344\270\211\351\223\266\345\233\233\347\232\204\345\211\215\347\253\257\347\244\276\346\213\233\351\235\242\347\273\217.md" +++ /dev/null @@ -1,206 +0,0 @@ -# 金三银四的前端社招面经 - -题目链接:[金三银四的前端社招面经](https://juejin.cn/post/6939774328858738696) - -## 腾讯看点 - -### 一面 - -**1. 写一个 LRU 缓存函数** - -```js -class LRUCache { - constructor(capacity) { - this.capacity = capacity; - this.map = new Map(); - } - get(key) { - if (this.map.has(key)) { - const data = this.map.get(key); - this.map.delete(key); - this.map.set(key, data); - } else { - return -1; - } - } - - put(key, value) { - if (this.map.has(key)) { - this.map.delete(key); - } - this.map.set(key, value); - - if (this.map.size > this.capacity) { - this.map.delete(this.map.keys().next().value); - } - } -} -``` - -**2. 写个防抖和节流函数** - -```js -// 节流 -function throttle(fn, wait) { - let pre = 0; - return function () { - const now = Date.now(); - if (now - pre > wait) { - fn.apply(arguments); - pre = now; - } - }; -} - -// 防抖 -function debounce(fn, wait) { - let timer; - return function () { - if (timer) clearTimeout(timer); - const args = arguments; - setTimeout(() => { - fn.apply(this, arguments); - }, wait); - }; -} -``` - -**3. 你们服务是怎么部署的?Node Agent 做了什么工作?** - -不会 Node - -**4. Grpc 的优缺点?** - -不会 Node - -**5. http2 的相关特性?** - -- 二进制传输:采用二进制传输数据,而不是用文本。 -- 多路复用:HTTP1.1 会有多个 TCP 连接,并且可能出现堵塞。HTTP2 只有一个 TCP 链接,实现了请求并发 -- 头部压缩:在 1.x 版本中,头部采用文本格式传输,在 HTTP2 中客户端和服务端会维护一个静态字典,只需要传入索引就可以了 -- 服务端推送:服务器端推送使得服务器可以预测客户端需要的资源,主动推送到客户端。例如:客户端请求 index.html,服务器端能够额外推送 script.js 和 style.css - -**6. viewport 和移动端布局方案** - -使用 postcss-px-to-viewport - -**7. 实现一个 compose 函数** - -```js -function compose(fns) { - return fns.reduce( - (a, b) => - (...args) => - a(b(...args)) - ); -} -``` - -**8. 开发中有遇到过比较难定位的问题吗?Node 内存泄露有遇到过吗?** -略... - -## 二面 - -**1. react ssr 是在什么场景下做的?** - -- 为了 SEO -- 改善用户交互,减少白屏时间 -- 减少请求,后端可以直接查询数据库,并返回页面结果 - -**2. react ssr 双端怎么做构建的?区别在哪里?** - -为什么要做双端构建, 原因是因为如果有一些生命周期和事件,单纯使用服务端渲染是无法触发的,需要搭配客户端代码 - -所以就需要客户端代码也执行一遍。 - -后端使用`renderToString`方法,渲染模板 - -```js -import { renderToString } from "react-dom/server"; -renderToString(); -``` - -前端使用`hydrate`方法,渲染组件 - -```js -import ReactDom from "react-dom"; -ReactDom.hydrate(, document.getElementById("root")); -``` - -**3. 有没有做过同构组件?服务端和客户端怎么同步状态的?** - -路由同构:前端使用`BrowserRouter`配置路由,后端使用`StaticRouter`配置路由,如下 - -```js -// 前端 -import { BrowserRouter } from "react-router-dom"; - -// 后端 -import { StaticRouter } from "react-router"; -``` - -```html - - - -// 服务端 - - - -``` - -数据同构:约定一个获取数据的方法,例如`getInitialProps`, 在服务端路由命中时,调用组件对应的`getInitialProps`, 取到数据之后再进行渲染为页面。 - -但是还会有些问题,页面还是不会显示出东西,因为客户端这边是没有数据的,所以需要进行`数据的脱水`, 例如把数据挂载在 window 某个变量,或者 textarea 的内容。 - -然后再进行`数据的注水`, 组件直接读取对应的数据即可 - -关键步骤如下: - -- 方法同构: 为组件声明 getInitialProps 静态方法,这是一个同构方法,用于双端的数据获取 -- 数据预取:在服务端通过路由匹配找到目标的组件,然后调用组件的数据预取方法得到数据将初始化数据作为属性传递给组件 -- 数据脱水:将数据序列化,和 html 字符串 一起直出返回给浏览器端 -- 数据注水:浏览器端得到服务端直出的数据,也通过属性将数据传给组件 -- 如果初始化数据不存在,则可以在 componentDidMount 生命周期内请求一次数据 - -**4. render 和 renderToString 的底层实现上的区别?** - -**5. 客户端怎么处理 JS 事件失效的问题?客户端不重新加载 JS 的情况下怎么实现?** -**6. 做服务端渲染的时候有没有遇到过比较难的点?** -**7. react ssr 和 ejs 性能的差异?** -**9. webpack plugin 的原理是什么?** -webpack 基于`tapable` 实现了大量的插件, tapable 本质使用了事件的发布订阅。`tapable`提供了很多 hooks,例如 - -```js -const { - SyncHook, - SyncBailHook, - SyncWaterfallHook, - SyncLoopHook, - AsyncParallelHook, - AsyncParallelBailHook, - AsyncSeriesHook, - AsyncSeriesBailHook, - AsyncSeriesWaterfallHook, -} = require("tapable"); -``` - -**10. plugin 中有异步请求会阻塞后面的 plugin 吗?** -这需要看插件是什么类型的 hook,如果是异步串行的钩子,会阻塞后面插件的执行 - -**11. 做过哪些 webpack 的性能优化?** - -1. webpack.IgnorePlugin 插件,忽略语言包等。 -2. DllPlugin 和 DllReference 插件,单独打包不经常变动的包,有利于提高开发构建速度 -3. 使用 cache-loader -4. 使用 thread-loader -5. 优化 loader 配置,例如设置 loader 的 include 和 exclude - -**12. hard-source-webpack-plugin 是怎么做缓存的?修改文件后会怎么样?** -**13. parallel 的原理是什么?多个子进程怎么通信?** -**14. 你们 webpack 是怎么做拆包的?** -**15. 做过哪些 react 相关的优化?函数组件怎么实现 shouldComponentUpdate?** -**16. 如果有一个非常大的 react 页面,我想优先渲染某一部分,这该怎么做?** -**17. react 函数组件和 class 组件里面 state 的区别?** -**18. react useEffect 对应 class 组件的哪些生命周期?** -**19. 前端的监控是怎么做的?除了 sentry 还做了其他异常处理吗?** diff --git a/src/interview/index.md b/src/interview/index.md index 0bef01b6fe..47817a04be 100644 --- a/src/interview/index.md +++ b/src/interview/index.md @@ -1,4 +1,19 @@ ---- -index: false ---- -# 面经汇总以及解答 +# 前端面经汇总 + ++ [字节跳动前端面经](https://www.nowcoder.com/discuss/702216?type=all&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_all_nctrack&gio_id=20F1EB59F6FD31FAD435BEE8B652A731-1641826247965) ++ [金三银四的前端社招面经](https://juejin.cn/post/6939774328858738696) ++ [八百年不面试,一面试就面得一塌糊涂](https://juejin.cn/post/7273682292538933306) ++ [「2022」寒冬下我的面试知识点复盘【计算机网络】篇](https://juejin.cn/post/7166870049066582053) ++ [「2022」寒冬下我的面试知识点复盘【Vue3、Vue2、Vite】篇](https://juejin.cn/post/7166446028266733581) ++ [复盘:前端岗位的寒冬,用这3点进行自救](https://juejin.cn/post/7201491839815139389) ++ [劝退面经(下)](https://juejin.cn/post/7207444169358786618) ++ [2023开年第一面:滴滴](https://juejin.cn/post/7199065225759686712) ++ [美团前端常考面试题(必备)](https://juejin.cn/post/7205517870976909370) ++ [[面经] 5年前端 - 历时1个月收获7个offer🔥](https://juejin.cn/post/7142690757722243102) ++ [5年经验(专升本)入职B站分享](https://juejin.cn/post/7076676933697667085) ++ [年后被吊打的第一面](https://juejin.cn/post/7193979904458195005) ++ [面经|三四月前端面试问题记录](https://juejin.cn/post/7088883914005184525) ++ [2年前端(外包经历) 6月部分面试记录 (高级、资深岗位)](https://juejin.cn/post/6989626582465789966) ++ [阿里腾讯面试梳理&个人成长经历分享](https://juejin.cn/post/6945625394154307592) ++ [阿里社招两年前端面经](https://juejin.cn/post/7007991848308310024) ++ [看完跳槽少说涨 5 K,前端面试从准备到谈薪完全指南(近万字精华)](https://juejin.cn/post/6844904029340827656) \ No newline at end of file diff --git "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/1.\346\265\217\350\247\210\345\231\250\351\203\275\346\234\211\345\223\252\344\272\233\350\277\233\347\250\213\357\274\214\346\270\262\346\237\223\350\277\233\347\250\213\344\270\255\351\203\275\346\234\211\344\273\200\344\271\210\347\272\277\347\250\213.md" "b/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/1.\346\265\217\350\247\210\345\231\250\351\203\275\346\234\211\345\223\252\344\272\233\350\277\233\347\250\213\357\274\214\346\270\262\346\237\223\350\277\233\347\250\213\344\270\255\351\203\275\346\234\211\344\273\200\344\271\210\347\272\277\347\250\213.md" deleted file mode 100644 index a28ef6a14f..0000000000 --- "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/1.\346\265\217\350\247\210\345\231\250\351\203\275\346\234\211\345\223\252\344\272\233\350\277\233\347\250\213\357\274\214\346\270\262\346\237\223\350\277\233\347\250\213\344\270\255\351\203\275\346\234\211\344\273\200\344\271\210\347\272\277\347\250\213.md" +++ /dev/null @@ -1,12 +0,0 @@ -# 1.浏览器都有哪些进程,渲染进程中都有什么线程 - -- 浏览器主进程: 负责包括地址栏、书签栏、前进后退按钮等部分的工作 -- 渲染进程: 负责一个 tab 内关于网页呈现的所有事情 - - GUI 渲染线程 - - JS 引擎线程 - - 事件触发线程 - - 定时处理线程 - - 异步 http 请求线程 -- GPU 进程: 负责处理 GPU 相关的任务 -- 网络进程: 负责处理浏览器的一些不可见的底层操作,比如网络请求和文件访问 -- 其他插件进程 diff --git "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/2.\347\256\200\345\215\225\350\257\264\344\270\200\344\270\213webpack\347\232\204\346\236\204\345\273\272\346\265\201\347\250\213.md" "b/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/2.\347\256\200\345\215\225\350\257\264\344\270\200\344\270\213webpack\347\232\204\346\236\204\345\273\272\346\265\201\347\250\213.md" deleted file mode 100644 index 0c81faab6d..0000000000 --- "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/2.\347\256\200\345\215\225\350\257\264\344\270\200\344\270\213webpack\347\232\204\346\236\204\345\273\272\346\265\201\347\250\213.md" +++ /dev/null @@ -1,10 +0,0 @@ -# 2.简单说一下 webpack 的构建流程 - -webpack 的运行流程是一个串行的过程,从启动到结束会依次执行以下流程 - -- 初始化参数:解析 webpack 配置参数,合并 shell 传入和 webpack.config.js 文件配置的参数,形成最后的配置结果; -- 开始编译:上一步得到的参数初始化 compiler 对象,注册所有配置的插件,插件监听 webpack 构建生命周期的事件节点,做出相应的反应,执行对象的 run 方法开始执行编译; -- 确定入口:从配置的 entry 入口,开始解析文件构建 AST 语法树,找出依赖,递归下去; -- 编译模块:递归中根据文件类型和 loader 配置,调用所有配置的 loader 对文件进行转换,再找出该模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理; -- 完成模块编译并输出:递归完事后,得到每个文件结果,包含每个模块以及他们之间的依赖关系,根据 entry 或分包配置生成代码块 chunk; -- 输出完成:输出所有的 chunk 到文件系统; compiler vs lation diff --git "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/3.npm install\347\232\204\346\211\247\350\241\214\346\265\201\347\250\213.md" "b/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/3.npm install\347\232\204\346\211\247\350\241\214\346\265\201\347\250\213.md" deleted file mode 100644 index 34f8a6abb9..0000000000 --- "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/3.npm install\347\232\204\346\211\247\350\241\214\346\265\201\347\250\213.md" +++ /dev/null @@ -1,29 +0,0 @@ -# 3.npm install 的执行流程 - -输入 npm install 命令并敲下回车后,会经历下面的几个阶段: - -1. **执行工程自身 preinstall**, 当前 npm 工程如果定义了 preinstall 钩子,此时会被执行 - -2. **确定首层依赖模块**, 也就是 dependencies 和 devDependencies 属性中直接指定的模块, npm 会开启多进程从每个首层依赖模块开始逐步寻找更深层级的节点 - -3. **获取模块**, 获取模块是一个递归的过程,分为以下几步: - -- `获取模块信息`: 在下载一个模块之前,首先要明确其版本,这是因为 package.json 中往往是 semantic version(语义化版本 semver)。此时如果版本描述文件中有该模块信息直接拿即可,如果没有则从仓库中获取。如 package.json 中某个包的版本是 ^1.1.0,npm 就会去仓库中获取符合 1.1.0 形式的版本 -- `获取模块实体`: 上一步会获取到模块的压缩包地址(resolved 字段),npm 会用此地址检查本地缓存,缓存中有就直接拿,如果没有则从仓库中下载。 -- `查找该模块依赖`: 如果有依赖就回到第一步,如果没有就停止 - -4. **模块扁平化** - -上一步获取到的是一棵完整的依赖树,其中可能包含大量重复模块。比如 A 模块依赖 lodash,B 模块同样依赖 lodash。在 npm3 以前会严格按照依赖树的结构进行安装,因为会造成模块冗余。 - -从 npm3 开始默认加入了一个 dedupe 的过程。它会遍历所有的节点,逐个将模块放在根节点下面,也就是 node_modules 的第一层。当发现有重复模块时,则将其丢弃。 - -这里需要对重复模块进行一个定义,它指的是模块名相同且语义化版本兼容。每个语义化版本都对应一段版本允许范围,如果两个模块的版本允许范围存在交集,那么就可以得到一个兼容版本,而不必版本号完全一致,这可以使更多冗余模块在 dedupe 过程中被去掉。 - -5. **安装模块** - -这一步将会更新工程中的 node_modules,并执行模块中的生命周期函数(按照 preinstall、install、postinstall 的顺序) - -6. **执行工程自身的生命周期** - -当前 npm 工程如果定义钩子此时会被执行(按照 install、postinstall、prepublish、prepare 的顺序)。最后一步是生成或更新版本描述文件,npm install 过程完成 diff --git "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/index.md" "b/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/index.md" deleted file mode 100644 index 73b50af571..0000000000 --- "a/src/interview/\351\235\242\350\257\225\351\242\230\345\220\210\351\233\206/index.md" +++ /dev/null @@ -1,4 +0,0 @@ ---- -index: false ---- -# 面试题合集