[
  {
    "path": ".gitattributes",
    "content": "*.md linguist-language=JavaScript"
  },
  {
    "path": ".gitignore",
    "content": ".classpath\n.project\n.settings     \n ##filter databfile、sln file##\n*.mdb  \n*.ldb  \n*.sln   \n##class file##\n*.com  \n*.class  \n*.dll  \n*.exe  \n*.o  \n*.so \n# compression file\n*.7z  \n*.dmg  \n*.gz  \n*.iso  \n*.jar  \n*.rar  \n*.tar  \n*.zip  \n*.via\n*.tmp\n*.err\n# OS generated files #  \n.DS_Store  \n.DS_Store?  \n._*  \n.Spotlight-V100  \n.Trashes  \nIcon?  \nehthumbs.db  \nThumbs.db "
  },
  {
    "path": "LICENSE.md",
    "content": "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">知识共享署名-非商业性使用 4.0 国际许可协议</a>进行许可。"
  },
  {
    "path": "README.md",
    "content": "<h1 align=\"center\">前端面试</h1>\n\n<div align=\"center\">\n   <a href=\"https://github.com/lgwebdream/FE-Interview/issues\"><img alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/lgwebdream/FE-Interview?color=success\"></a>\n   <a href=\"https://github.com/lgwebdream/FE-Interview/network\"><img alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/lgwebdream/FE-Interview?color=success\"></a>\n   <a href=\"https://github.com/lgwebdream/FE-Interview/stargazers\"><img alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/lgwebdream/FE-Interview?color=success\"></a>\n</div>\n\n<div align=\"center\">\n    <img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/t3.png\" width=\"300px\">\n</div>\n<div align=\"center\" >\n<table display=\"table\">\n  <tr>\n    <th align=\"center\"><b> <a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/html.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/html1.png\" width=\"30px\" > </b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/css.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/css.png\" width=\"40px\" > </b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/javascript.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/javascript1.png\" width=\"35px\" ></b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/vue.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/vue.svg\" width=\"40px\" ></b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/react.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/wx/react_icon_v1.png\" width=\"40px\" ></b></th>\n  <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/node.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/node1.png\" width=\"40px\" ></b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/webpack.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/webpack.svg\" width=\"40px\" ></b></th>\n   <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/http.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/http1.png\" width=\"35px\" ></b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/algorithm.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/algorithm3.svg\" width=\"52px\" ></b></th>\n   <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/program.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/pro.svg\" width=\"50px\" ></b></th>\n    <th align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/other.md\"><img src=\"http://img-static.yidengxuetang.com/wxapp/wx/other_iocn_v2.png\" width=\"38px\" > </b></th>\n  </tr>\n  <tr>\n    <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/html.md\">Html</a></b></td>\n     <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/css.md\">&nbsp;Css&nbsp; </a></b></td>\n     <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/javascript.md\">JavaScript</a></b></td>\n     <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/vue.md\">&nbsp;Vue&nbsp;</a></b></td>\n    <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/react.md\">React</a></b></td>\n     <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/node.md\">Node</a></b></td>\n    <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/webpack.md\">Webpack</a></b></td>\n      <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/http.md\">Http</a></b></td>\n      <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/algorithm.md\">Algorithm</a></b></td>\n       <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/program.md\">Coding</a></b></td>\n      <td align=\"center\"><b><a href=\"https://github.com/lgwebdream/FE-Interview-Planet/blob/master/summarry/other.md\">Other</a></b></td>\n  </tr>\n</table>\n</div>\n\n<br />\n\n## ☕ 前端面试每日一题\n\n> 每天 get 一个知识点\n\n### Day386:写一个通用的事件侦听器函数\n\n**[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/122)**\n\n<br />\n\n## 📚 前端面试题汇总\n\n- **[全部面试题汇总](https://github.com/lgwebdream/FE-Interview/issues)**\n\n<br />\n\n## 📱 手机刷题(附带详细答案)\n\n> 二维码加载失败请点击 [入口](http://img-static.yidengxuetang.com/wxapp/issue-img/wxqr-github.png)\n\n <img src=\"http://img-static.yidengxuetang.com/wxapp/issue-img/wxqr-github.png\" width=\"200px\" >\n\n## ⏱️ 最近更新\n\n- [Day385:在一个 DOM 上同时绑定两个点击事件：一个用捕获，一个用冒泡。事件会执行几次？先执行冒泡还是捕获？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1220)\n- [Day384:JavaScript 中如何实现一个类？怎么实例化这个类？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1219)\n- [Day383:说下 React 的 useEffect、useCallback、useMemo](https://github.com/lgwebdream/FE-Interview-Planet/issues/1218)\n- [Day382:说一下 setTimeout 和 setInterval 的区别，包含内存方面的分析？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1217)\n- [Day381:说一下 JavaScript 严格模式下有哪些不同？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1216)\n- [Day380:实现一个系统，统计前端页面性能、页面 JS 报错、用户操作行为、PV/UV、用户设备等消息，并进行必要的监控报警。方案如何设计，用什么技术点，什么样的系统架构，难点会在哪里？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1215)\n- [Day379:如果让你来实现一个前端监控系统，应该考虑什么？如何去实现？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1214)\n- [Day378:说一下什么是 Http 协议无状态?怎么解决 Http 协议无状态?](https://github.com/lgwebdream/FE-Interview-Planet/issues/1213)\n- [Day377:说一下你了解的 WebSocket 鉴权授权方案？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1211)\n- [Day376:说一下你对进程和线程的了解？Node 中进程间是如何进行通信的？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1210)\n- [Day375:setTimeout/setInterval 实现倒计时如何解决时间偏差的问题?](https://github.com/lgwebdream/FE-Interview-Planet/issues/1209)\n- [Day374:说一下开发中常用的几种 Content-Type ？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1208)\n- [Day373：说下 Node 中 require 模块引入的查找方式？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1207)\n- [Day372:说一下你对 Get 和 Post 请求在缓存方面理解](https://github.com/lgwebdream/FE-Interview-Planet/issues/1206)\n- [Day371:使用 Symbol 函数都有哪些要注意的点？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1205)\n- [Day370:为什么使用 setTimeout 实现 setInterval？怎么模拟？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1204)\n- [Day369:说下你对 Reflect 的理解？为什么会有 Reflect 的出现？Proxy 也简单的说一下？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1203)\n- [Day368:说一下你对 Get 请求传参长度限制的理解？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1202)\n- [Day367:说下 URL 和 URI 的区别？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1201)\n- [Day366:什么是 CSP?](https://github.com/lgwebdream/FE-Interview-Planet/issues/1200)\n- [Day365:如何解决 Vue 打包 vendor 过大的问题？Webpack 打包 vue 速度慢怎么办？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1199)\n- [Day364：为什么说 React 中 props 是只读的？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1197)\n- [Day363:举例说明 React 的插槽有哪些运用场景？你有用过 React 的插槽(Portals)吗？怎么用？](https://github.com/lgwebdream/FE-Interview-Planet/issues/1196)\n\n## 🏠 前端面试 Family\n\n如果你在工作中遇到问题、在面试中遇到疑惑、在前端路上遇到了阻碍，都可以加入我们前端星球 Family，我们会竭尽全力为大家答疑解惑，让我们共同努力，一同成长。\n\n<div align=\"center\">\n    <img src=\"http://img-static.yidengxuetang.com/wxapp/github-img/bot.gif\" width=\"500px\" >\n</div>\n\n<br />\n\n## 版权许可\n\n![](http://img-static.yidengxuetang.com/wxapp/github-img/copyright.png)\n\n本作品采用[知识共享署名-非商业性使用 4.0 国际许可协议](http://creativecommons.org/licenses/by-nc/4.0/)进行许可，只要保持原作者署名和非商用，您可以自由地阅读、分享、修改。"
  },
  {
    "path": "demos/yd-webpack-demo/README.md",
    "content": "# Webpack5 新特性尝鲜实战 【第二季】🦀🦀\n\n------\n\n标题我们写上了**Webpack** 新特性实战尝鲜的第二季，那么肯定就有第一季了( [Webpack5.0 新特性尝鲜实战 🦀🦀【第一季】](https://mp.weixin.qq.com/s/0aJmmmrQCwylpViRb09rQA))。距离写上一篇文章已经超过了一年的时间，那时候还是**major**版，我们先来总结一下吧：\n\n> * dist打包文件测评\n> * 让人揪心的按需加载\n> *  moduleIds & chunkIds得已确定\n> * 饱受诟病的编译速度\n> * minSize&maxSize 更好的方式表达\n> *  编译器的优化\n> * Node.js polyfills 自动被移除\n\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpack-logo.jpg)\n\n老袁写这篇文章的时候现在的版本是 v5.0.0-beta.22，开发进度71%。如果有更多变化和新特性，我也会给大家持续输出第三季。\n\n### 这一年还发生了啥\n\n> 除了以上老袁写的一些新特性以外，这一年最大的新增特性就是 **Module federation** 它的出现为 `微前端`解决了最核心的组件共享的问题，这个的Google上的优秀文章就太多了，大家自行查阅吧。当然这一年老袁也又老了一岁🤤我也学不动了🤒好了接下来天也不早了，人也不少了，我们干点正事吧。\n\n------\n\n## 走进Webpack5 Experiments \n\nwebpack 5中引入了experiments可选选项，以使用户能够激活和试用实验功能。虽是实验属性，可我只能说真香。\n\n### 1. topLevelAwait 支持[顶级Await Stage 3提案](https://github.com/tc39/proposal-top-level-await)\n\n```javascript\n//demo/data.js\nconst data = '京程一灯';\nexport default data;\n//demo/index.js\nlet output;\nasync function main() {\n  const dynamic = await import('./data');\n  output = dynamic + '🏮';\n}\nmain();\nexport { output };\n\n//执行如下代码\nimport { output } from './demo';\nconsole.log(output);\n// 很遗憾output是undefined\n```\n\n遗憾归遗憾，我们似乎丝毫没得办法去让他得到我们最后处理的值。当然你可以用哨兵变量不停的去询问和递归等等，但都不是一个最佳的办法，因为对于前端同学来讲async和await必须是一对。今天这种情况得到了改善。\n\n```shell\nyarn add webpack@next\n#会让你选择版本 选择最新的beta版本\nyarn add webpack-cli@next\n```\n\n接下来编写webpack.config.js\n\n```javascript\nmodule.exports = {\n  experiments: {\n    // 导入异步模块 import webpack会提示你打开这个属性\n    importAsync: true,\n    // 全靠它了topLevelAwait\n    topLevelAwait: true,\n  },\n};\n\n```\n\n```javascript\n//重写demo/index.js\nconst dynamic = await import('./data');\nexport const output = dynamic.default + '';\n//你也可以这么写\nconst dynamic = import('./data');\nexport const output = (await dynamic).default + Math.random() + '🍊';\n```\n\n好的，接下来就是见证奇迹的时刻了。\n\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpack-1.jpg)\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpack-2.jpg)\n\n我的内心突然有了丝丝的幸福感，你呢🙃可是你以为结束了，我们可以玩点更劲爆的。\n\n```javascript\n//demo02/index.js\nconst connectToDB = async () => {\n  const data = await new Promise((r) => {\n    r('京程一灯');\n  });\n  return data;\n};\nconst result = await connectToDB();\nlet output = `${result}🍊`;\nexport { output };\n\n//执行如下代码\nimport await { output } from './demo02';\nconsole.log(output);\n```\n\n调整一下webpack.config.js\n\n```javascript\nmodule.exports = {\n  experiments: {\n    // 三兄弟聚齐了\n    importAsync: true,\n    topLevelAwait: true,\n    // 支持import await\n    importAwait: true,\n  },\n};\n```\n\n我的内心毫无波澜甚至呆滞了很久😧\n\n\n### 2. 再见了file-loader、url-loader、raw-loader\n\n废话少说还是上硬核代码吧\n\n```css\nbody {\n  background: url('./bg.png');\n}\n```\n\n```javascript\nimport './demo03/index.css';\nconsole.log('京程一灯');\n```\n\n再继续修改下webpack.config.js\n\n```javascript\nmodule.exports = {\n    output: {\n      assetModuleFilename: 'images/[name].[hash:5][ext]',\n    },\n    module: {\n      rules: [\n        {\n          test: /\\.(png|jpg|svg)$/,\n          type: 'asset',\n        },\n        {\n          test: /\\.css$/i,\n          use: ['style-loader', 'css-loader'],\n        },\n      ],\n  },\n  experiments: {\n\t\tasset: true,\n  },\n};\n```\n\n大型真香现场无疑了🔮\n\n```shell\nyarn dev\n```\n\n\n\n### 3. 丝丝顺滑的WebAssembly\n\n```c\n//一段非常简单的C代码\nint add (int x, int y) {\n  return x + y;\n}\n//然后我们把它编译成program.wasm\n```\n来吧，展示🎙\n\n```javascript\n//webpack4只能这样去加载program.wasm\n//如果同步去加载 会报错不能把wasm当成主chunk\nimport('./demo04/program.wasm').then((p) => {\n  console.log(p.add(4, 6));\n});\n//webpack5震撼来袭 \n//有人说WebAssembly这玩意也没人用啊？那啥 🛏 晚安\nimport { add } from './demo03/program';\nconsole.log(add(4, 6));\n```\n\n继续修改webpack.config.js，应该不用老袁继续解释了。\n\n```javascript\nmodule.exports = {\n  experiments: {\n    asyncWebAssembly: true,\n    syncWebAssembly: true,\n  },\n};\n```\n\n### 4. 我的mjs能管不？能\n\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpack-5.jpg)\n\n```javascript\n//demo05/index.mjs\nconst data = '京程一灯';\nexport default data;\n//运行一下代码\nimport data from './demo5';\nconsole.log(data);\n```\n修改webpack.config.js\n```\nmodule.exports = {\n  experiments: {\n     mjs: true,\n  },\n};\n```\n\n### 5. outputModule是啥？\n\n| 属性                 | 值     |\n| -------------------- | :----- |\n| outputModule         | true   |\n| output.libraryTarget | module |\n\n这个属性有什么用呢，我们编写类库的时候会经常使用到它，他可以帮助我们完成生成的代码的模块标准，那么设置outputModule为true以后和不设置的区别在哪呢？看图说话吧（如名字所示丢掉了闭包把自己变成了module）。\n\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpck-3.jpg)\n\n### 6. 最后来张全家福吧\n![cmd-markdown-logo](http://img-static.yidengxuetang.com/wxapp/github-img/demo-webpack-4.jpg)\n\n\n---\n\n作者 老袁    \n2020 年 07月 15日    \n"
  },
  {
    "path": "demos/yd-webpack-demo/package.json",
    "content": "{\n  \"name\": \"yd-webpack-demo\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev\": \"webpack --mode development\",\n    \"prod\": \"webpack --mode production\"\n  },\n  \"keywords\": [],\n  \"author\": \"\",\n  \"license\": \"ISC\",\n  \"devDependencies\": {\n    \"css-loader\": \"^3.6.0\",\n    \"style-loader\": \"^1.2.1\",\n    \"html-webpack-plugin\": \"^4.3.0\",\n    \"webpack\": \"^5.0.0-beta.22\",\n    \"webpack-cli\": \"^4.0.0-beta.8\"\n  }\n}\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/assets/index.html",
    "content": "<!DOCTYPE html>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<head>\n<title>默认模板</title>\n</head>\n\n<body>\n    <h1>京程一灯</h1>\n</body>\n\n</html>"
  },
  {
    "path": "demos/yd-webpack-demo/src/back.js",
    "content": "import('./demo03/program.wasm').then((p) => {\n  console.log(p.add(4, 6));\n});\nimport { add } from './demo03/program';\nconsole.log(add(4, 6));\n\nlet output;\nasync function main() {\n  const dynamic = await import('../demo02/data');\n  output = dynamic + '🏮';\n}\nmain();\nexport { output };\n\nconst dynamic = import('../demo02/data');\nexport const output = (await dynamic).default + '🍊';\n\n// import { curry } from 'lodash';\n// console.log(curry);\n\n// (async () => {\n//   const module = await import('lodash');\n//   console.log(module);\n// })();\n\nimport('lodash').then((_) => {\n  console.log(_.default);\n});\n\n// export const Yideng = \"\";\n// async () => {\n//   const data = await new Promise((r) => setTimeout(r('京程一灯🍊'), 100000));\n//   return data;\n// };\nlet data = '';\nconst connectToDB = async () => {\n  await new Promise((r) => {\n    data = '京程一灯';\n    r();\n  });\n};\n\nawait connectToDB();\n// async function output() {\n//   const data2 = await Promise.resolve(Math.random());\n//   return data + data2.toString();\n// }\n// export { output };\nlet output = data + '🍊';\nexport { output };\nimport await { output } from './demo05';\nconsole.log(output);\n\n// import './demo06/index.css';\n\n// console.log('京程一灯');\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo01/data.mjs",
    "content": "//通过node --experimental-modules ./src/index.mjs 启动\nconst data = '京程一灯';\nexport default data;\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo02/data.js",
    "content": "const data = '京程一灯';\nexport default data;\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo03/math.c",
    "content": "int add (int x, int y) {\n  return x + y;\n}\n\nint square (int x) {\n  return x * x;\n}"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo04/index.js",
    "content": "// const dynamic = await import('../demo02/data');\n// export const output = dynamic.default + '';\n// const dynamic = import('../demo02/data');\n// export const output = (await dynamic).default + Math.random() + '🍊';\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo05/index.js",
    "content": "const connectToDB = async () => {\n  const data = await new Promise((r) => {\n    r('京程一灯');\n  });\n  return data;\n};\nconst result = await connectToDB();\nlet output = `${result}🍊`;\nexport { output };\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/demo06/index.css",
    "content": "body {\n  background: url('./bg.png');\n}\nh1 {\n  color: yellowgreen;\n}\n"
  },
  {
    "path": "demos/yd-webpack-demo/src/index.js",
    "content": "// import './demo06/index.css';\n\n// console.log('京程一灯');\n\nimport await { output } from './demo05';"
  },
  {
    "path": "demos/yd-webpack-demo/webpack.config.js",
    "content": "const HtmlWebpackPlugin = require('html-webpack-plugin');\nmodule.exports = {\n  output: {\n    assetModuleFilename: 'images/[name].[hash:5][ext]',\n  },\n  module: {\n    rules: [\n      {\n        test: /\\.(png|jpg|svg)$/,\n        type: 'asset',\n      },\n      {\n        test: /\\.css$/i,\n        use: ['style-loader', 'css-loader'],\n      },\n    ],\n  },\n  experiments: {\n    mjs: true,\n    outputModule: true,\n    asyncWebAssembly: true,\n    syncWebAssembly: true,\n    importAsync: true,\n    importAwait: true,\n    topLevelAwait: true,\n    asset: true,\n  },\n  plugins: [\n    new HtmlWebpackPlugin({\n      filename: 'index.html',\n      template: 'src/assets/index.html',\n    }),\n  ],\n};\n"
  },
  {
    "path": "summarry/algorithm.md",
    "content": "# 算法题目汇总\n\n- [合并二维有序数组成一维有序数组，归并排序的思路](#合并二维有序数组成一维有序数组归并排序的思路)\n- [多种方式实现斐波那契数列](#多种方式实现斐波那契数列)\n- [字符串出现的不重复最长长度](#字符串出现的不重复最长长度)\n- [有一堆整数，请把他们分成三份，确保每一份和尽量相等（11，42，23，4，5，6 4 5 6 11 23 42 56 78 90）](#有一堆整数请把他们分成三份确保每一份和尽量相等114223456-4-5-6-11-23-42-56-78-90)\n- [[实操题]输入一条 polyline，输出 polyline 的中点](#实操题输入一条-polyline输出-polyline-的中点)\n- [单向链表实现队列](#单向链表实现队列)\n- [将给定的数组从顶级分类递归查找子分类，最终构建一个树状数组](#将给定的数组从顶级分类递归查找子分类最终构建一个树状数组)\n- [实现一个将 52 张牌随机均等的分给四个人，比如输入 [0,1,2,3....51] ，输出[[1,2,16...],[4,3,6..],[....],[....]]](#实现一个将-52-张牌随机均等的分给四个人比如输入-012351-输出1216436)\n- [按要求实现 rightView 函数](#按要求实现-rightview-函数)\n- [二叉树序列化反序列化](#二叉树序列化反序列化)\n- [输入一个数字，找到对应的字母](#输入一个数字找到对应的字母)\n- [Given an int n, output Mausoleum Array solutions.](#given-an-int-n-output-mausoleum-array-solutions)\n- [给一个字符串比如'abca'，返回第一个不重复的字母](#给一个字符串比如abca返回第一个不重复的字母)\n- [给定⼀个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效.](#给定个只包括--的字符串判断字符串是否有效)\n- [手动实现一个函数，给定一个数组[1,0,2,3,4,-1,-3]，输出任意两个值和为 0 的下标](#手动实现一个函数给定一个数组10234-1-3输出任意两个值和为-0-的下标)\n- [介绍排序算法和快排原理](#介绍排序算法和快排原理)\n- [一个人每次只能走一层楼梯或者两层楼梯，问走到第 80 层楼梯一共有多少种方法](#一个人每次只能走一层楼梯或者两层楼梯问走到第-80-层楼梯一共有多少种方法)\n- [给定一个数组，形如 [1, 1, 2 , 3, 3, 3, 3, 4, 6, 6]，给定一个数 n，例如 3，找出给定的数 n 在数组内出现的次数，要求时间复杂度小于 O(n)](#给定一个数组形如-1-1-2--3-3-3-3-4-6-6给定一个数-n例如-3找出给定的数-n-在数组内出现的次数要求时间复杂度小于-on)\n- [现在有随机整数数组，例如[2,11,20,160,3,1...]，请挑出数组内，三个随机整数和为 100 的所有数据。](#现在有随机整数数组例如2112016031请挑出数组内三个随机整数和为-100-的所有数据)\n- [统计一组整形数组的最大差值？](#统计一组整形数组的最大差值)\n- [介绍冒泡排序、选择排序，说说冒泡排序如何优化](#介绍冒泡排序选择排序说说冒泡排序如何优化)\n- [如何判断链表是否有环](#如何判断链表是否有环)\n- [介绍二叉搜索树的特点](#介绍二叉搜索树的特点)\n- [手写数组去重函数(至少三种以上，说明时间复杂度)](#手写数组去重函数至少三种以上说明时间复杂度)\n- [找到前 K 个最大的元素](#找到前-k-个最大的元素)\n- [介绍下 DFS 深度优先](#介绍下-dfs-深度优先)\n- [递归公式的时间复杂度为？(单选题)](#递归公式的时间复杂度为单选题)\n- [用 JavaScript 实现一个标准的排序算法(快排、冒泡、选择排序)，对某个数字数组进行由低到高的排序。](#用-javascript-实现一个标准的排序算法快排冒泡选择排序对某个数字数组进行由低到高的排序)\n- [找出“aaaabbcccdddd”字符串中出现最多的字母？](#找出aaaabbcccdddd字符串中出现最多的字母)\n- [求 n 以内的所有素数，并说明时间复杂度](#求-n-以内的所有素数并说明时间复杂度)\n- [给定一个二叉树，找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点](#给定一个二叉树找出其最大深度二叉树的深度为根节点到最远叶子节点的最长路径上的节点数说明-叶子节点是指没有子节点的节点)\n- [给定一个整数数组 nums，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和](#给定一个整数数组-nums找到一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和)\n- [算法考察：Next Permutation](#算法考察next-permutation)\n- [按要求实现代码](#按要求实现代码)\n- [找出两个数组的交集元素](#找出两个数组的交集元素)\n- [输入一个整数，输出该数二进制表示中 1 的个数](#输入一个整数输出该数二进制表示中-1-的个数)\n- [⽤ js 实现随机选取 10–100 之间的 10 个且不重复的数字，存⼊⼀个数组，还要排序](#-js-实现随机选取-10100-之间的-10-个且不重复的数字存个数组还要排序)\n- [请用算法实现，从给定的无序、不重复的数组data中，取出n个数，使其相加和为sum。并给出算法的时间/空间复杂度。(不需要找到所有的解，找到一个解即可)](#请用算法实现从给定的无序不重复的数组data中取出n个数使其相加和为sum并给出算法的时间空间复杂度不需要找到所有的解找到一个解即可)\n\n### 合并二维有序数组成一维有序数组，归并排序的思路\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/8)\n\n<br/>\n\n### 多种方式实现斐波那契数列\n\n公司：腾讯、CVTE、微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/9)\n\n<br/>\n\n### 字符串出现的不重复最长长度\n\n公司：腾讯\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/10)\n\n<br/>\n\n### 有一堆整数，请把他们分成三份，确保每一份和尽量相等（11，42，23，4，5，6 4 5 6 11 23 42 56 78 90）\n\n公司：滴滴\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/19)\n\n<br/>\n\n### [实操题]输入一条 polyline，输出 polyline 的中点\n\n题目补充：\n\n```js\n算法：输入一条polyline，输出polyline的中点\n绘制：在浏览器中绘制出polyline和中点\n说明：中点是指沿着polyline，到polyline的起点和终点，距离相等，中点要求在polyline上\n输入：[[10, 20], [20, 200], [30, 220], [40, 300], [100, 400]]，以[10, 20]举例，10代表x坐标，20代表y坐标，单位是像素\n要求：提供源代码，用原生JavaScript实现，不使用任何框架、类库、构建工具，本地打开html文件可直接看到效果\n```\n\n公司：腾讯\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/240)\n\n<br/>\n\n### 单向链表实现队列\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/214)\n\n<br/>\n\n### 将给定的数组从顶级分类递归查找子分类，最终构建一个树状数组\n\n```js\n/*\n *数组：[{id:1, parentId: 0}, {id:2, parentId:1},{id:3, parentId:1}]\n *输出结果：[{id:1, parentId: 0,children:[{id:2, parentId:1},{id:3, parentId:1}]}]\n *说明：parentId为0 的是根节点\n */\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/212)\n\n<br/>\n\n### 实现一个将 52 张牌随机均等的分给四个人，比如输入 [0,1,2,3....51] ，输出[[1,2,16...],[4,3,6..],[....],[....]]\n\n公司：顺丰\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/157)\n\n<br/>\n\n### 按要求实现 rightView 函数\n\n```js\nfunction TreeNode(val){\n  this.val = val;\n  this.left = null;\n  this.right = null;\n}\nfunction rightView(root){\n  // 请你实现\n}\n// => [1,4,3]\n     1      => 1\n   2   4    => 4\n 7   3      => 3\n```\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/140)\n\n<br/>\n\n### 二叉树序列化反序列化\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/346)\n\n<br/>\n\n### 输入一个数字，找到对应的字母\n\n```js\n/*\n\t如输入1 返回a\n\t输入26返回z\n\t输入27返回aa\n\t输入28返回ab\n\t输入53返回aaa\n*/\n```\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/345)\n\n<br/>\n\n### Given an int n, output Mausoleum Array solutions.\n\n```js\n// Given an int n, output Mausoleum Array solutions.\n// Mausoleum Array:\n// Construct by 1,1,2,2,3,3,…,n-1,n-1,n,n\n// first were non-decreasing (i.e., increasing or remained the same), and then — non-increasing (decrease or remained unchanged).\n// Mausoleum Array example:\n// [1, 2, 2, 3, 4, 4, 3, 1];\n// [1, 1];\n// [2, 2, 1, 1];\n// [1, 2, 3, 3, 2, 1].\n// input/output example:\n// n=1, [1,1]\n// n=2, [1,1,2,2],[1,2,2,1],[2,2,1,1]\n// n = 3,[3, 3, 2, 2, 1, 1],[2, 3, 3, 2, 1, 1],[2, 2, 3, 3, 1, 1],[1, 3, 3, 2, 2, 1],[1, 2, 3, 3, 2, 1],[1, 2, 2, 3, 3, 1],[1, 1, 3, 3, 2, 2],[1, 1, 2, 3, 3, 2],[1, 1, 2, 2, 3, 3]\n```\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/344)\n\n<br/>\n\n### 给一个字符串比如'abca'，返回第一个不重复的字母\n\n公司：易车\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/334)\n\n<br/>\n\n### 给定⼀个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效.\n\n```js\n/*\n  有效字符串需满⾜：\n \t \t1. 左括号必须⽤相同类型的右括号闭合。\n  \t2. 左括号必须以正确的顺序闭合。\n  注意空字符串可被认为是有效字符串。\n  示例1：\n  \t输⼊: \"()\"\n  \t输出: true\n  示例2：\n  \t输⼊: \"()[]{}\"\n  \t输出: true\n  示例 3:\n  \t输⼊: \"(]\"\n  \t输出: false\n  示例 4:\n  \t输⼊: \"([)]\"\n  \t输出: false\n  示例 5:\n  \t输⼊: \"{[]}\"\n  \t输出: true\n*/\n```\n\n公司：新东方\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/327)\n\n<br/>\n\n### 手动实现一个函数，给定一个数组[1,0,2,3,4,-1,-3]，输出任意两个值和为 0 的下标\n\n公司：滴滴\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/321)\n\n<br/>\n\n### 介绍排序算法和快排原理\n\n公司：寺库、百分点\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/314)\n\n<br/>\n\n### 一个人每次只能走一层楼梯或者两层楼梯，问走到第 80 层楼梯一共有多少种方法\n\n公司：快手\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/291)\n\n<br/>\n\n### 给定一个数组，形如 [1, 1, 2 , 3, 3, 3, 3, 4, 6, 6]，给定一个数 n，例如 3，找出给定的数 n 在数组内出现的次数，要求时间复杂度小于 O(n)\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/243)\n\n<br/>\n\n### 现在有随机整数数组，例如[2,11,20,160,3,1...]，请挑出数组内，三个随机整数和为 100 的所有数据。\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/388)\n\n<br/>\n\n### 统计一组整形数组的最大差值？\n\n公司：心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/365)\n\n<br/>\n\n### 介绍冒泡排序、选择排序，说说冒泡排序如何优化\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/492)\n\n<br/>\n\n### 如何判断链表是否有环\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/490)\n\n<br/>\n\n### 介绍二叉搜索树的特点\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/489)\n\n<br/>\n\n### 手写数组去重函数(至少三种以上，说明时间复杂度)\n\n公司：携程、心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/443)\n\n<br/>\n\n### 找到前 K 个最大的元素\n\n公司：百分点\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/746)\n\n<br/>\n\n### 介绍下 DFS 深度优先\n\n公司：海风教育\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/739)\n\n<br/>\n\n### 递归公式的时间复杂度为？(单选题)\n\n```js\nA.O(n)\nB.O(logn)\nC.O(nlogn)\nD.O(n2)\n```\n\n公司：会小二\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/693)\n\n<br/>\n\n### 用 JavaScript 实现一个标准的排序算法(快排、冒泡、选择排序)，对某个数字数组进行由低到高的排序。\n\n公司：会小二\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/686)\n\n<br/>\n\n### 找出“aaaabbcccdddd”字符串中出现最多的字母？\n\n公司：心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/675)\n\n<br/>\n\n### 求 n 以内的所有素数，并说明时间复杂度\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/667)\n\n<br/>\n\n### 给定一个二叉树，找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/626)\n\n<br/>\n\n### 给定一个整数数组 nums，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/625)\n\n<br/>\n\n### 算法考察：Next Permutation\n\n```js\n/* \n  Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.\n  If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order).\n  The replacement must be in-place, do not allocate extra memory.\n  Here are some examples. Inputs are in the left-hand column and its corresponding outputs are in the right-hand column.\n  1,2,3 → 1,3,2\n  3,2,1 → 1,2,3\n  1,1,5 → 1,5,1\n*/\n```\n\n公司：爱范儿\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/845)\n\n<br/>\n\n### 按要求实现代码\n\n```js\n/* \n  根据传入参数n(数字)对一维数组(纯数字)按照距离n最近的顺序排序。(距离即数字与n的差值的绝对值)\n*/\nvar arr = [7, 28, -1, 0, 7, 33];\nfunction sort(n) {\n  // your code\n}\n```\n\n公司：高思教育\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/821)\n\n<br/>\n\n### 找出两个数组的交集元素\n\n公司：乘法云\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/806)\n\n<br/>\n\n### 输入一个整数，输出该数二进制表示中 1 的个数\n\n公司：新东方\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/798)\n\n<br/>\n\n### ⽤ js 实现随机选取 10–100 之间的 10 个且不重复的数字，存⼊⼀个数组，还要排序\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/795)\n\n<br/>\n\n### 请用算法实现，从给定的无序、不重复的数组data中，取出n个数，使其相加和为sum。并给出算法的时间/空间复杂度。(不需要找到所有的解，找到一个解即可)\n\n```js\nfunction getResult(data,n,sum){\n  // your code\n}\n```\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/902)\n\n<br/>\n\n\n### 给定⼀个⼤⼩为 n 的数组，找到其中的众数。众数是指在数组中出现次数⼤于 n/2 的元素\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/789)\n\n<br/>\n\n"
  },
  {
    "path": "summarry/all.md",
    "content": "# 全部面试题汇总\n\n- [写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,...,a+nb 的时间，然后写一个 myClear，停止上面的 mySetInterVal](#写一个-mysetintervalfn-a-b每次间隔-aaba2b-的时间然后写一个-myclear停止上面的-mysetinterval)\n- [合并二维有序数组成一维有序数组，归并排序的思路](#合并二维有序数组成一维有序数组归并排序的思路)\n- [斐波那契数列](#斐波那契数列)\n- [字符串出现的不重复最长长度](#字符串出现的不重复最长长度)\n- [介绍chrome 浏览器的几个版本](#介绍chrome-浏览器的几个版本)\n- [React 项目中有哪些细节可以优化？实际开发中都做过哪些性能优化](#react-项目中有哪些细节可以优化实际开发中都做过哪些性能优化)\n- [react 最新版本解决了什么问题 加了哪些东西](#react-最新版本解决了什么问题-加了哪些东西)\n- [说一下 Http 缓存策略，有什么区别，分别解决了什么问题](#说一下-http-缓存策略有什么区别分别解决了什么问题)\n- [介绍防抖节流原理、区别以及应用，并用JavaScript进行实现](#介绍防抖节流原理区别以及应用并用javascript进行实现)\n- [前端安全、中间人攻击](#前端安全中间人攻击)\n- [对闭包的看法，为什么要用闭包？说一下闭包原理以及应用场景](#对闭包的看法为什么要用闭包说一下闭包原理以及应用场景)\n- [css 伪类与伪元素区别](#css-伪类与伪元素区别)\n- [有一堆整数，请把他们分成三份，确保每一份和尽量相等（11，42，23，4，5，6 4 5 6 11 23 42 56 78 90）](#有一堆整数请把他们分成三份确保每一份和尽量相等114223456-4-5-6-11-23-42-56-78-90)\n- [实现 lodash 的_.get](#实现-lodash-的_get)\n- [实现 add(1)(2)(3)](#实现-add123)\n- [实现链式调用](#实现链式调用)\n- [React 事件绑定原理](#react-事件绑定原理)\n- [类数组和数组的区别，dom 的类数组如何转换成数组](#类数组和数组的区别dom-的类数组如何转换成数组)\n- [webpack 做过哪些优化，开发效率方面、打包策略方面等等](#webpack-做过哪些优化开发效率方面打包策略方面等等)\n- [说一下事件循环机制(node、浏览器)](#说一下事件循环机制node浏览器)\n- [如何封装 node 中间件](#如何封装-node-中间件)\n- [node 中间层怎样做的请求合并转发](#node-中间层怎样做的请求合并转发)\n- [介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise](#介绍下-promise-的特性优缺点内部是如何实现的动手实现-promise)\n- [实现 Promise.all](#实现-promiseall)\n- [React 组件通信方式](#react-组件通信方式)\n- [redux-saga 和 mobx 的比较](#redux-saga-和-mobx-的比较)\n- [说一下 react-fiber](#说一下-react-fiber)\n- [手写发布订阅](#手写发布订阅)\n- [手写数组转树](#手写数组转树)\n- [手写用 ES6proxy 如何实现 arr[-1] 的访问](#手写用-es6proxy-如何实现-arr-1-的访问)\n- [手写实现 Array.flat()](#手写实现-arrayflat)\n- [react 实现一个全局的 dialog](#react-实现一个全局的-dialog)\n- [[实操题]输入一条 polyline，输出 polyline 的中点](#实操题输入一条-polyline输出-polyline-的中点)\n- [Umi 和 dva 分别是干嘛用的？为什么会有 umi dva 的出现？使用起来有什么不方便的地方吗？](#umi-和-dva-分别是干嘛用的为什么会有-umi-dva-的出现使用起来有什么不方便的地方吗)\n- [React 数据持久化有什么实践吗？](#react-数据持久化有什么实践吗)\n- [使用过 mobx mobx 和 redux 有什么区别？](#使用过-mobox-吗mobox-和-redux-有什么区别)\n- [文件上传如何做断点续传](#文件上传如何做断点续传)\n- [大数计算如何实现](#大数计算如何实现)\n- [请用算法实现，从给定的无序、不重复的数组data中，取出n个数，使其相加和为sum。并给出算法的时间/空间复杂度。(不需要找到所有的解，找到一个解即可)](#请用算法实现从给定的无序不重复的数组data中取出n个数使其相加和为sum并给出算法的时间空间复杂度不需要找到所有的解找到一个解即可)\n- [什么是深拷贝，和浅拷贝有什么区别，动手实现一个深拷贝](#什么是深拷贝和浅拷贝有什么区别动手实现一个深拷贝)\n- [实现一个方法判断 html 中的标签是否闭合](#实现一个方法判断-html-中的标签是否闭合)\n- [mysql 和 mongodb 区别](#mysql-和-mongodb-区别)\n- [V8 机制讲解](#v8-机制讲解)\n- [说一下盒子模型，以及标准情况和 IE 下的区别](#说一下盒子模型以及标准情况和-ie-下的区别)\n- [箭头函数和普通函数的区别](#箭头函数和普通函数的区别)\n- [说下 webpack 的 loader 和 plugin 的区别，都使用过哪些 loader 和 plugin](#说下-webpack-的-loader-和-plugin-的区别都使用过哪些-loader-和-plugin)\n- [Css 如何画出一个扇形，动手实现下](#css-如何画出一个扇形动手实现下)\n- [介绍下 webpack，并说下 Webpack 的构建流程](#介绍下-webpack并说下-webpack-的构建流程)\n- [说下 tree-shaking 的原理](#说下-tree-shaking-的原理)\n- [Webp 格式的图片怎么生成，使用有什么兼容性问题，如何怎么解决](#webp-格式的图片怎么生成使用有什么兼容性问题如何怎么解决)\n- [React 高阶组件 renderprops hooks 有什么区别，为什么要不断迭代](#react-高阶组件-renderprops-hooks-有什么区别为什么要不断迭代)\n- [说一下 React setState 原理](#说一下-react-setstate-原理)\n- [说一下 React diff 算法](#说一下-react-diff-算法)\n- [说一下 React 生命周期，以及都有哪些改变，为什么去掉了那几个旧的生命周期](#说一下-react-生命周期以及都有哪些改变为什么去掉了那几个旧的生命周期)\n- [React key 是干嘛用的 为什么要加？key 主要是解决哪一类问题的](#react-key-是干嘛用的-为什么要加key-主要是解决哪一类问题的)\n- [Redux 中异步的请求怎么处理](#redux-中异步的请求怎么处理)\n- [CDN 是什么？描述下 CDN 原理？为什么要用 CDN?](#cdn-是什么描述下-cdn-原理为什么要用-cdn)\n- [PWA 是什么？对 PWA 有什么了解](#pwa-是什么对-pwa-有什么了解)\n- [讲一下 webpack 原理， loader 和 plugin，你知道哪些模块化标准，说下 cjs 和 esmodule 的区别](#讲一下-webpack-原理-loader-和-plugin你知道哪些模块化标准说下-cjs-和-esmodule-的区别)\n- [es5 实现 isInteger](#es5-实现-isinteger)\n- [单向链表实现队列](#单向链表实现队列)\n- [写出输出结果](#写出输出结果)\n- [将给定的数组从顶级分类递归查找子分类，最终构建一个树状数组](#将给定的数组从顶级分类递归查找子分类最终构建一个树状数组)\n- [手写 dom 操作，翻转 li 标签，如何处理更优](#手写-dom-操作翻转-li-标签如何处理更优)\n- [怎样判断一个对象是否是数组，如何处理类数组对象](#怎样判断一个对象是否是数组如何处理类数组对象)\n- [是否熟悉 Node，主要做过哪些业务，平时用过什么包？](#是否熟悉-node主要做过哪些业务平时用过什么包)\n- [是否了解 glob，glob 是如何处理文件的，业界是否还有其它解决方案](#是否了解-globglob-是如何处理文件的业界是否还有其它解决方案)\n- [说一下 Vue 的 keep-alive 是如何实现的，具体缓存的是什么？](#说一下-vue-的-keep-alive-是如何实现的具体缓存的是什么)\n- [Redux 和 Vuex 有什么区别，说下一它们的共同思想](#redux-和-vuex-有什么区别说下一它们的共同思想)\n- [谈一下微信小程序的架构以及为什么要用到双线程](#谈一下微信小程序的架构以及为什么要用到双线程)\n- [随便打开一个网页，用 JavaScript 打印所有以 s 和 h 开头的标签，并计算出标签的种类](#随便打开一个网页用-javascript-打印所有以-s-和-h-开头的标签并计算出标签的种类)\n- [1000*1000 的画布，上面有飞机、子弹，如何划分区域能够更有效的做碰撞检测，类似划分区域大小与碰撞检测效率的算法，说一下大致的思路](#10001000-的画布上面有飞机子弹如何划分区域能够更有效的做碰撞检测类似划分区域大小与碰撞检测效率的算法说一下大致的思路)\n- [移动设备安卓与 iOS 的软键盘弹出的处理方式有什么不同](#移动设备安卓与-ios-的软键盘弹出的处理方式有什么不同)\n- [iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决](#iphone-里面-safari-上如果一个输入框-fixed-绝对定位在底部当软键盘弹出的时候会有什么问题如何解决)\n- [iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决](#iphone-里面-safari-上如果一个输入框-fixed-绝对定位在底部当软键盘弹出的时候会有什么问题如何解决-1)\n- [iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决](#iphone-里面-safari-上如果一个输入框-fixed-绝对定位在底部当软键盘弹出的时候会有什么问题如何解决-2)\n- [给定一个数组，按找到每个元素右侧第一个比它大的数字，没有的话返回-1 规则返回一个数组](#给定一个数组按找到每个元素右侧第一个比它大的数字没有的话返回-1-规则返回一个数组)\n- [说一说 promise，有几个状态，通过 catch 捕获到 reject 之后，在 catch 后面还能继续执行 then 方法嘛，如果能执行执行的是第几个回调函数](#说一说-promise有几个状态通过-catch-捕获到-reject-之后在-catch-后面还能继续执行-then-方法嘛如果能执行执行的是第几个回调函数)\n- [var、let、const 的区别](#varletconst-的区别)\n- [说一下 GC](#说一下-gc)\n- [BFC 是什么？触发 BFC 的条件是什么？有哪些应用场景？](#bfc-是什么触发-bfc-的条件是什么有哪些应用场景)\n- [说一下浏览器解析 Html 文件的过程](#说一下浏览器解析-html-文件的过程)\n- [说一下什么是重绘重排，哪些操作会造成重绘重排](#说一下什么是重绘重排哪些操作会造成重绘重排)\n- [什么情况会出现浏览器分层](#什么情况会出现浏览器分层)\n- [通过 link 进来的 css 会阻塞页面渲染嘛，Js 会阻塞吗，如果会如何解决？](#通过-link-进来的-css-会阻塞页面渲染嘛js-会阻塞吗如果会如何解决)\n- [如何实现按需加载](#如何实现按需加载)\n- [讲一下 import 的原理，与 require 有什么不同](#讲一下-import-的原理与-require-有什么不同)\n- [为什么 useState 要使用数组而不是对象](#为什么-usestate-要使用数组而不是对象)\n- [从输入 URL 到页面加载全过程](#从输入-url-到页面加载全过程)\n- [请实现如下的函数](#请实现如下的函数)\n- [DNS 解析的具体过程](#dns-解析的具体过程)\n- [常见的 http 请求头都有哪些，以及它们的作用](#常见的-http-请求头都有哪些以及它们的作用)\n- [encoding 头都有哪些编码方式](#encoding-头都有哪些编码方式)\n- [utf-8 和 asc 码有什么区别](#utf-8-和-asc-码有什么区别)\n- [tcp 和 udp 有什么区别？tcp 怎样确保数据正确性？tcp 头包含什么？tcp 属于那一层？](#tcp-和-udp-有什么区别tcp-怎样确保数据正确性tcp-头包含什么tcp-属于那一层)\n- [传输层和网络层分别负责什么，端口在什么层标记](#传输层和网络层分别负责什么端口在什么层标记)\n- [介绍下 Https，和 http 的区别是什么？https 为什么比 http 安全？如何进行配置？](#介绍下-https和-http-的区别是什么https-为什么比-http-安全如何进行配置)\n- [说一下加密握手的过程](#说一下加密握手的过程)\n- [对称加密和非对称加密的区别和用处](#对称加密和非对称加密的区别和用处)\n- [是否用过 restful 接口，和其他风格的有什么区别](#是否用过-restful-接口和其他风格的有什么区别)\n- [说一下 get、post、put 的区别](#说一下-getpostput-的区别)\n- [说一下对面向对象的理解，面向对象有什么好处](#说一下对面向对象的理解面向对象有什么好处)\n- [类设计：使用面相对象设计一个停车场管理系](#类设计使用面相对象设计一个停车场管理系)\n- [实现输出一个十六进制的随机颜色(#af0128a)](#实现输出一个十六进制的随机颜色af0128a)\n- [justify-content:space-between around 有什么区别](#justify-contentspace-between-around-有什么区别)\n- [手写代码实现kuai-shou-front-end=&gt;KuaiShouFrontEnd](#手写代码实现kuai-shou-front-endkuaishoufrontend)\n- [浏览器都有哪些进程，渲染进程中都有什么线程](#浏览器都有哪些进程渲染进程中都有什么线程)\n- [说说浏览器渲染流程，分层之后在什么时候合成，什么是重排、重绘，怎样避免](#说说浏览器渲染流程分层之后在什么时候合成什么是重排重绘怎样避免)\n- [什么是同源策略？什么是跨域？都有哪些方式会造成跨域？解决跨域都有什么手段？](#什么是同源策略什么是跨域都有哪些方式会造成跨域解决跨域都有什么手段)\n- [什么是 CORS，CORS 需要前端配置还是后端配置？](#什么是-corscors-需要前端配置还是后端配置)\n- [设计一个 Student 组件，实现输入姓名性别成绩（这三个必填），还有几个不是必填的属性，要设置默认值，点击弹出成绩](#设计一个-student-组件实现输入姓名性别成绩这三个必填还有几个不是必填的属性要设置默认值点击弹出成绩)\n- [设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2](#设计一个函数奇数次执行的时候打印-1偶数次执行的时候打印-2)\n- [实现 Promise.then](#实现-promisethen)\n- [平时在项目开发中都做过哪些前端性能优化](#平时在项目开发中都做过哪些前端性能优化)\n- [给定起止日期，返回中间的所有月份](#给定起止日期返回中间的所有月份)\n- [输入两个字符串，输出他们中间的月份](#输入两个字符串输出他们中间的月份)\n- [实现一个将 52 张牌随机均等的分给四个人，比如输入 [0,1,2,3....51] ，输出[[1,2,16...],[4,3,6..],[....],[....]]](#实现一个将-52-张牌随机均等的分给四个人比如输入-012351-输出1216436)\n- [用尽量短的代码实现一个 arrary 的链式操作，将数组中的大于 10 的值进行一个累加](#用尽量短的代码实现一个-arrary-的链式操作将数组中的大于-10-的值进行一个累加)\n- [简单封装一个异步 fecth，使用 async await 的方式来使用](#简单封装一个异步-fecth使用-async-await-的方式来使用)\n- [怎么理解 to B 和 to C 的业务](#怎么理解-to-b-和-to-c-的业务)\n- [如果有一个项目，随着业务的增长越来越大，怎么办，如何来进行一个拆分或者处理](#如果有一个项目随着业务的增长越来越大怎么办如何来进行一个拆分或者处理)\n- [请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值](#请写一个函数输出出多级嵌套结构的-object-的所有-key-值)\n- [使用 Css 实现一个水波纹效果](#使用-css-实现一个水波纹效果)\n- [position 定位都有什么属性（不仅仅是绝对定位和相对定位/fix 定位）](#position-定位都有什么属性不仅仅是绝对定位和相对定位fix-定位)\n- [写出打印结果，并解释为什么](#写出打印结果并解释为什么)\n- [动手实现一个 repeat 方法](#动手实现一个-repeat-方法)\n- [setTimeout 有什么缺点，和 requestAnimationFrame 有什么区别](#settimeout-有什么缺点和-requestanimationframe-有什么区别)\n- [versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数](#versions-是一个项目的版本号列表因多人维护不规则动手实现一个版本号处理函数)\n- [怎样用 css 实现一个弹幕的效果，动手实现一下](#怎样用-css-实现一个弹幕的效果动手实现一下)\n- [实现一个多并发的请求](#实现一个多并发的请求)\n- [说一下 Css 预处理器，Less 带来的好处？](#说一下-css-预处理器less-带来的好处)\n- [写出代码执行结果](#写出代码执行结果)\n- [按要求实现一个 sum 函数](#按要求实现一个-sum-函数)\n- [按要求实现 rightView 函数](#按要求实现-rightview-函数)\n- [meta 元素都有什么](#meta-元素都有什么)\n- [Css 选择器都有什么，权重是怎么计算的](#css-选择器都有什么权重是怎么计算的)\n- [布局都有什么方式，float 和 position 有什么区别](#布局都有什么方式float-和-position-有什么区别)\n- [Http1 和 Http2 有什么区别，和 http1.1 相比，http2 都有什么特性](#http1-和-http2-有什么区别和-http11-相比http2-都有什么特性)\n- [Import 和 CommonJS 在 webpack 打包过程中有什么不同](#import-和-commonjs-在-webpack-打包过程中有什么不同)\n- [说一下 base64 的编码方式](#说一下-base64-的编码方式)\n- [说一下单向数据流有什么好处](#说一下单向数据流有什么好处)\n- [nth-child和nth-of-type 有什么区别](#nth-child和nth-type-of-有什么区别)\n- [&lt;img&gt;是什么元素](#img是什么元素)\n- [flex 布局，如何实现把八个元素分两行摆放](#flex-布局如何实现把八个元素分两行摆放)\n- [改变 this 指向的方式都有哪些？](#改变-this-指向的方式都有哪些)\n- [说一下 etag 和 lastmodify 的区别](#说一下-etag-和-lastmodify-的区别)\n- [强缓存都有哪些方法来控制](#强缓存都有哪些方法来控制)\n- [协商缓存都有哪些参数](#协商缓存都有哪些参数)\n- [说一下module.exports和exports的区别，export和export default的区别](#说一下moduleexports和exports的区别export和export-default的区别)\n- [说一下 webpack 中 css-loader 和 style-loader 的区别，file-loader 和 url-loader 的区别](#说一下-webpack-中-css-loader-和-style-loader-的区别file-loader-和-url-loader-的区别)\n- [number 为什么会出现精度损失，怎样避免](#number-为什么会出现精度损失怎样避免)\n- [说一下对 React 和 Vue 的理解，它们的异同](#说一下对-react-和-vue-的理解它们的异同)\n- [二叉树序列化反序列化](#二叉树序列化反序列化)\n- [输入一个数字，找到对应的字母](#输入一个数字找到对应的字母)\n- [Given an int n, output Mausoleum Array solutions.](#given-an-int-n-output-mausoleum-array-solutions)\n- [实现一个函数将中文数字转成数字](#实现一个函数将中文数字转成数字)\n- [节流](#节流)\n- [请求是异步的为什么会造成阻塞](#请求是异步的为什么会造成阻塞)\n- [脚手架具体都做了哪些事，webpack 具体做了什么配置，怎样优化的打包大小](#脚手架具体都做了哪些事webpack-具体做了什么配置怎样优化的打包大小)\n- [介绍下 Webpack 的整个生命周期](#介绍下-webpack-的整个生命周期)\n- [如何实现 5 秒自动刷新一次页面(具体都有什么方法 reload 之类的)](#如何实现-5-秒自动刷新一次页面具体都有什么方法-reload-之类的)\n- [都了解哪些 ES6、ES7 的新特性，箭头函数可以被 new 吗](#都了解哪些-es6es7-的新特性箭头函数可以被-new-吗)\n- [说一下 JavaScript 继承都有哪些方法](#说一下-javascript-继承都有哪些方法)\n- [Css 方式实现一个不知道宽高的 div 居中都有哪几种方法](#css-方式实现一个不知道宽高的-div-居中都有哪几种方法)\n- [给一个字符串比如'abca'，返回第一个不重复的字母](#给一个字符串比如abca返回第一个不重复的字母)\n- [已知函数 A，要求构造⼀个函数 B 继承 A](#已知函数-a要求构造个函数-b-继承-a)\n- [数组和对象转换为字符串结果](#数组和对象转换为字符串结果)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果-1)\n- [要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName](#要求不同式对-a-进改造实现-aname-发变化时即执-agetname)\n- [修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）](#修改以下代码使得最后代码能够输出数字-0-9最好能给多种答案)\n- [给定⼀个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效.](#给定个只包括--的字符串判断字符串是否有效)\n- [CDN 有哪些优化静态资源加载速度的机制](#cdn-有哪些优化静态资源加载速度的机制)\n- [请给出识别 Email 的正则表达式](#请给出识别-email-的正则表达式)\n- [设计 AutoComplete 组件(又叫搜索组件、自动补全组件等)时，需要考虑什么问题？](#设计-autocomplete-组件又叫搜索组件自动补全组件等时需要考虑什么问题)\n- [实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和](#实现函数接受任意二叉树求二叉树所有根到叶子路径组成的数字之和)\n- [webpack 离线缓存静态资源如何做用 localStore](#webpack-离线缓存静态资源如何做用-localstore)\n- [手动实现一个函数，给定一个数组[1,0,2,3,4,-1,-3]，输出任意两个值和为 0 的下标](#手动实现一个函数给定一个数组10234-1-3输出任意两个值和为-0-的下标)\n- [请写出一下代码的打印结果](#请写出一下代码的打印结果)\n- [Promise 链式调用如何实现](#promise-链式调用如何实现)\n- [说一下对BigInt的理解，在什么场景下会使用](#说一下对bigint的理解在什么场景下会使用)\n- [null 是不是一个对象，如果是，如何判断一个对象是 null，不使用 JavaScript 提供的 api 如何进行判断](#null-是不是一个对象如果是如何判断一个对象是-null不使用-javascript-提供的-api-如何进行判断)\n- [gitlab 分支管理，线上如果发生 bug 怎么解决？](#gitlab-分支管理线上如果发生-bug-怎么解决)\n- [说一下对于堆栈的理解](#说一下对于堆栈的理解)\n- [介绍排序算法和快排原理](#介绍排序算法和快排原理)\n- [[] == ![]为什么](#--为什么)\n- [说一下 React.Component 和 Ract.PureComponent 的区别](#说一下-reactcomponent-和-ractpurecomponent-的区别)\n- [说一下对 React Hook 的理解，它的实现原理，和生命周期有哪些区别？](#说一下对-react-hook-的理解它的实现原理和生命周期有哪些区别)\n- [如何把真实 dom 转变为虚拟 dom，代码实现一下](#如何把真实-dom-转变为虚拟-dom代码实现一下)\n- [说一下错误监控的实现，错误监控的正确使用方式，日志如何分等级](#说一下错误监控的实现错误监控的正确使用方式日志如何分等级)\n- [说一下 Vue3 与 Vue2 的对比](#说一下-vue3-与-vue2-的对比)\n- [vue 对数组的方法做了重写的操作，如何实现对 vue2 中对数组操作的 push()方法](#vue-对数组的方法做了重写的操作如何实现对-vue2-中对数组操作的-push方法)\n- [手动实现一个 Promisify 函数](#手动实现一个-promisify-函数)\n- [说一下 React 有状态组件与无状态组件区别，以及为什么要用，它的优缺点](#说一下-react-有状态组件与无状态组件区别以及为什么要用它的优缺点)\n- [说一下 Nginx 的缓存策略，强缓存与弱缓存的区别，二者的使用场景](#说一下-nginx-的缓存策略强缓存与弱缓存的区别二者的使用场景)\n- [请写出以下代码执行结果](#请写出以下代码执行结果)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-1)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-2)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-3)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-4)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-5)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-6)\n- [以下 css 最后是什么颜色](#以下-css-最后是什么颜色)\n- [说一下什么是死锁](#说一下什么是死锁)\n- [实现以下代码](#实现以下代码)\n- [请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求](#请实现一个-cacherequest-方法保证发出多次同一个-ajax-请求时都能拿到数据而实际上只发出一次请求)\n- [实现一个函数柯里化](#实现一个函数柯里化)\n- [一个人每次只能走一层楼梯或者两层楼梯，问走到第 80 层楼梯一共有多少种方法](#一个人每次只能走一层楼梯或者两层楼梯问走到第-80-层楼梯一共有多少种方法)\n- [简述 Vue 的基本原理](#简述-vue-的基本原理)\n- [简述 Vue 的生命周期以及每个阶段做的事](#简述-vue-的生命周期以及每个阶段做的事)\n- [说一下 Vue 组件的通信方式都有哪些？(父子组件，兄弟组件，多级嵌套组件等等)](#说一下-vue-组件的通信方式都有哪些父子组件兄弟组件多级嵌套组件等等)\n- [说一下 Vuex 的原理以及自己的理解](#说一下-vuex-的原理以及自己的理解)\n- [Vue v-model 是如何实现的，语法糖实际是什么](#vue-v-model-是如何实现的语法糖实际是什么)\n- [说一下对 React context 的理解](#说一下对-react-context-的理解)\n- [说一下对 React-redux 的理解以及它的原理，主要解决什么问题](#说一下对-react-redux-的理解以及它的原理主要解决什么问题)\n- [说一下 Redux 的原理，介绍下整体的一个工作流程](#说一下-redux-的原理介绍下整体的一个工作流程)\n- [React 如何避免 renderd 的触发](#react-如何避免-renderd-的触发)\n- [说一下 Vue dom diff 算法](#说一下-vue-dom-diff-算法)\n- [说一下对 vnode 的理解，vnode 的引入与直接操作原生 dom 相比，哪一个相率更高，为什么](#说一下对-vnode-的理解vnode-的引入与直接操作原生-dom-相比哪一个相率更高为什么)\n- [说一下对原型链的理解，画一个经典的原型链图示](#说一下对原型链的理解画一个经典的原型链图示)\n- [简述 Grid 布局](#简述-grid-布局)\n- [说一下 ajax/axios/fetch 的区别](#说一下-ajaxaxiosfetch-的区别)\n- [用 Promise 封装一个 ajax](#用-promise-封装一个-ajax)\n- [动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)](#动手实现一个左右固定100px中间自适应的三列布局至少三种)\n- [请描述 CSRF、XSS 的基本概念、攻击原理和防御措施？](#请描述-csrfxss-的基本概念攻击原理和防御措施)\n- [请描述提升页面性能的方式有哪些，如何进行首页加载优化](#请描述提升页面性能的方式有哪些如何进行首页加载优化)\n- [描述 DOM 事件捕获的具体流程](#描述-dom-事件捕获的具体流程)\n- [Http 报文的请求会有几个部分？请写出 HTTP 报文的组成部分](#http-报文的请求会有几个部分请写出-http-报文的组成部分)\n- [301，302，304 的区别](#301302304-的区别)\n- [请实现$on,$emit](#请实现onemit)\n- [实现 bind 方法，不能使用 call、apply、bind](#实现-bind-方法不能使用-callapplybind)\n- [手写实现 sleep 函数](#手写实现-sleep-函数)\n- [介绍一下 node 核心模块（主要是 stream）](#介绍一下-node-核心模块主要是-stream)\n- [说一下 webpack 与 gulp 的区别（源码角度）](#说一下-webpack-与-gulp-的区别源码角度)\n- [请写出原生 js 如何设置元素高度](#请写出原生-js-如何设置元素高度)\n- [说一下 Vue 的$nextTick 原理](#说一下-vue-的nexttick-原理)\n- [说一下 vue-router 的原理](#说一下-vue-router-的原理)\n- [node 如何做错误监控（运行时与其他）如何生成日志，日志等级](#node-如何做错误监控运行时与其他如何生成日志日志等级)\n- [Node 的适用场景以及优缺点是什么？](#node-的适用场景以及优缺点是什么)\n- [Vue 是如何收集依赖的](#vue-是如何收集依赖的)\n- [用原生 js 实现自定义事件](#用原生-js-实现自定义事件)\n- [如何识别出字符串中的回车并进行换行？](#如何识别出字符串中的回车并进行换行？)\n- [屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法](#屏幕占满和未占满的情况下使-footer-固定在底部尽量多种方法)\n- [输入一个日期 返回几秒前、几小时前、几天前、几月前](#输入一个日期-返回几秒前几小时前几天前几月前)\n- [将 153812.7 转化为 153,812.7](#将-1538127-转化为-1538127)\n- [给定一个数组，形如 [1, 1, 2 , 3, 3, 3, 3, 4, 6, 6]，给定一个数 n，例如 3，找出给定的数 n 在数组内出现的次数，要求时间复杂度小于 O(n)](#给定一个数组形如-1-1-2--3-3-3-3-4-6-6给定一个数-n例如-3找出给定的数-n-在数组内出现的次数要求时间复杂度小于-on)\n- [说一下 https 获取加密秘钥的过程](#说一下-https-获取加密秘钥的过程)\n- [Css 画一个三角形](#css-画一个三角形)\n- [说一下 Vue 单页与多页的区别](#说一下-vue-单页与多页的区别)\n- [说一下 Vue 路由实现原理](#说一下-vue-路由实现原理)\n- [数组有哪些方法 讲讲区别跟使用场景](#数组有哪些方法-讲讲区别跟使用场景)\n- [localstorage、sessionStorage、indexDB 和 cookie 的区别](#localstoragesessionstorageindexdb-和-cookie-的区别)\n- [讲一下函数式编程](#讲一下函数式编程)\n- [promise 跟 async await 的区别，使用场景](#promise-跟-async-await-的区别使用场景)\n- [async、await 如何进行错误捕获](#asyncawait-如何进行错误捕获)\n- [Css 超出省略怎么写，三行超出省略怎么写](#css-超出省略怎么写三行超出省略怎么写)\n- [Css inherit、initial、unset 三者的区别](#css-inheritinitialunset-三者的区别)\n- [介绍下 Flex 布局，属性都有哪些，都是干啥的](#介绍下-flex-布局属性都有哪些都是干啥的)\n- [点击一个按钮，浏览器会做些什么](#点击一个按钮浏览器会做些什么)\n- [script 的 async 跟 defer 的区别？](#script-的-async-跟-defer-的区别)\n- [React15/16.x 的区别](#react1516x-的区别)\n- [weak-Set、weak-Map 和 Set、Map 区别](#weak-setweak-map-和-setmap-区别)\n- [mvvm 模型和 mvc 模型区别](#mvvm-模型和-mvc-模型区别)\n- [如何实现一个 mvvm 模型](#如何实现一个-mvvm-模型)\n- [Vue3.0 为什么要用 proxy？是怎么用 proxy 实现数据监听的?](#vue30-为什么要用-proxy是怎么用-proxy-实现数据监听的)\n- [valueOf 与 toString 的区别](#valueof-与-tostring-的区别)\n- [TCP 三次握手](#tcp-三次握手)\n- [koa2 和 express 区别](#koa2-和-express-区别)\n- [怎么判断是一个空对象](#怎么判断是一个空对象)\n- [请写出下面代码的执行结果](#请写出下面代码的执行结果)\n- [请写出下面代码的执行结果](#请写出下面代码的执行结果-1)\n- [现在有随机整数数组，例如[2,11,20,160,3,1...]，请挑出数组内，三个随机整数和为 100 的所有数据。](#现在有随机整数数组例如2112016031请挑出数组内三个随机整数和为-100-的所有数据)\n- [请只用数组方法和 Math.random()在一条语句的情况下，实现生成给定位数的随机数组，例如生成 10 位随机数组[1.1,102.1,2,3,8,4,90,123,11,123],数组内数字随机生成。](#请只用数组方法和-mathrandom在一条语句的情况下实现生成给定位数的随机数组例如生成-10-位随机数组11102123849012311123数组内数字随机生成)\n- [实现一个 setter 方法](#实现一个-setter-方法)\n- [LocalStorage 加密原理](#localstorage-加密原理)\n- [setTimeout 与 setInterval 区别](#settimeout-与-setinterval-区别)\n- [说一下常见的状态码](#说一下常见的状态码)\n- [项目中如何应用数据结构](#项目中如何应用数据结构)\n- [304 页面的原理](#304-页面的原理)\n- [RN、Weex、Dart 的优缺点](#rnweexdart-的优缺点)\n- [知道语义化吗？说说你理解的语义化，如果是你，平时会怎么做来保证语义化？说说你了解的 HTML5 语义化标签？](#知道语义化吗说说你理解的语义化如果是你平时会怎么做来保证语义化说说你了解的-html5-语义化标签)\n- [闭包的核心是什么](#闭包的核心是什么)\n- [响应式布局用到的技术，移动端需要注意什么](#响应式布局用到的技术移动端需要注意什么)\n- [写出代码输出结果](#写出代码输出结果)\n- [实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误](#实现一个功能发送请求-5s-时间后如果没有数据返回中断请求提示错误)\n- [什么是作用域链](#什么是作用域链)\n- [介绍事件冒泡、事件代理、事件捕获，以及它们的关系](#介绍事件冒泡事件代理事件捕获以及它们的关系)\n- [for..of 和 for...in 是否可以直接遍历对象，为什么](#forof-和-forin-是否可以直接遍历对象为什么)\n- [在 map 中和 for 中调用异步函数的区别](#在-map-中和-for-中调用异步函数的区别)\n- [gennerator yield 的作用](#gennerator-yield-的作用)\n- [promise 的状态有哪些](#promise-的状态有哪些)\n- [在 ES6 中有哪些解决异步的方法](#在-es6-中有哪些解决异步的方法)\n- [es6 类继承中 super 的作用](#es6-类继承中-super-的作用)\n- [cros 的简单请求和复杂请求的区别](#cros-的简单请求和复杂请求的区别)\n- [统计一组整形数组的最大差值？](#统计一组整形数组的最大差值)\n- [addEventListener 的第三个参数的作用](#addeventlistener-的第三个参数的作用)\n- [上传文件的 Content_Type 什么，node 如何拿到上传的文件内容(不适用第三方插件)？文件内容是一次行传输过去的么](#上传文件的-content_type-什么node-如何拿到上传的文件内容不适用第三方插件文件内容是一次行传输过去的么)\n- [获取 id 为 netease 节点下所有的 checkbox 子元素(不用框架，注意兼容)](#获取-id-为-netease-节点下所有的-checkbox-子元素不用框架注意兼容)\n- [使用原型链如何实现继承](#使用原型链如何实现继承)\n- [如何获取一个对象的深度](#如何获取一个对象的深度)\n- [reduce 函数的功能，如何实现的，动手实现一下](#reduce-函数的功能如何实现的动手实现一下)\n- [说一下 splice 和 slice 的功能用法](#说一下-splice-和-slice-的功能用法)\n- [面向对象的三要素是啥？都是啥意思？](#面向对象的三要素是啥都是啥意思)\n- [函数中的 this 有几种](#函数中的-this-有几种)\n- [如何同时获取 html 中的 h1,h2,h3,h4,h5,h6 中的内容](#如何同时获取-html-中的-h1h2h3h4h5h6-中的内容)\n- [JavaScript 的执行流程](#javascript-的执行流程)\n- [Promise.resolve(obj)，obj 有几种可能](#promiseresolveobjobj-有几种可能)\n- [写出代码执行结果](#写出代码执行结果-1)\n- [nextTick 是在本次循环执行，还是在下次，setTimeout(() =&gt; {}, 0)呢？](#nexttick-是在本次循环执行还是在下次settimeout---0呢)\n- [A、B 两个条件组件，如何做到 webpack 只打包条件为 true 的组件，false 的组件不打包](#ab-两个条件组件如何做到-webpack-只打包条件为-true-的组件false-的组件不打包)\n- [说一下对 vue3.0 的了解，vue3.0 为什么要用代理](#说一下对-vue30-的了解vue30-为什么要用代理)\n- [子组件可以直接改变父组件的数据么，说明原因](#子组件可以直接改变父组件的数据么说明原因)\n- [webpack 怎么处理内联 css 的](#webpack-怎么处理内联-css-的)\n- [webpack 如何做异步加载](#webpack-如何做异步加载)\n- [客户端缓存有几种方式？浏览器出现 from disk、from memory 的策略是啥](#客户端缓存有几种方式浏览器出现-from-diskfrom-memory-的策略是啥)\n- [什么是 http？什么是 http2？说下 http 与 http2 的工作流程](#什么是-http什么是-http2说下-http-与-http2-的工作流程)\n- [客户端如何发送 http 请求](#客户端如何发送-http-请求)\n- [使用正则去掉 Dom 中的内联样式](#使用正则去掉-dom-中的内联样式)\n- [写一个匹配 ip 地址的正则](#写一个匹配-ip-地址的正则)\n- [写一个匹配 Html 标签的正则](#写一个匹配-html-标签的正则)\n- [使用 typescript 的装饰器能否实现函数调用前出现加载动画，调用后关闭，如果能，这个加载动画的控制代码是放在哪种装饰器上呢](#使用-typescript-的装饰器能否实现函数调用前出现加载动画调用后关闭如果能这个加载动画的控制代码是放在哪种装饰器上呢)\n- [unicode 和 utf8 的关系](#unicode-和-utf8-的关系)\n- [介绍下 pm2，pm2 依据什么重启服务](#介绍下-pm2pm2-依据什么重启服务)\n- [什么是微服务，微服务跟单体应用的区别是啥，用微服务有啥好处？](#什么是微服务微服务跟单体应用的区别是啥用微服务有啥好处)\n- [IOC 是啥，应用场景是啥？](#ioc-是啥应用场景是啥)\n- [是否了解 docker，介绍一下](#是否了解-docker介绍一下)\n- [写出代码执行的打印结果](#写出代码执行的打印结果)\n- [实现函数](#实现函数)\n- [使用过的 koa2 中间件，中间件的原理是什么？](#使用过的-koa2-中间件中间价的原理是什么)\n- [koa-body 原理](#koa-body-原理)\n- [有没有写过中间件，介绍下自己写过的中间件](#有没有写过中间件介绍下自己写过的中间件)\n- [有没有涉及到 Cluster，说一下你的理解](#有没有涉及到-cluster说一下你的理解)\n- [master 挂了的话 pm2 怎么处理](#master-挂了的话-pm2-怎么处理)\n- [Node 如何和 MySQL 进行通信](#node-如何和-mysql-进行通信)\n- [如何配置 React-Router 实现路由切换](#如何配置-react-router-实现路由切换)\n- [服务端渲染 SSR](#服务端渲染-ssr)\n- [介绍 Redux 数据流的流程](#介绍-redux-数据流的流程)\n- [Redux 如何实现多个组件之间的通信，多个组件使用相同状态如何进行管理](#redux-如何实现多个组件之间的通信多个组件使用相同状态如何进行管理)\n- [React 路由的动态加载模块，实现按需加载](#React 路由的动态加载模块，实现按需加载)\n- [多个组件之间如何拆分各自的 state，每块小的组件有自己的状态，它们之间还有一些公共的状态需要维护，这如何思考](#多个组件之间如何拆分各自的-state每块小的组件有自己的状态它们之间还有一些公共的状态需要维护这如何思考)\n- [使用过的 Redux 中间件](#使用过的-redux-中间件)\n- [redux 的设计思想](#redux-的设计思想)\n- [移动端适配 1px 的问题](#移动端适配-1px-的问题)\n- [居中为什么要使用 transform（为什么不使用 marginLeft/marginTop）](#居中为什么要使用-transform为什么不使用-marginleftmargintop)\n- [Webpack 里面的插件是怎么实现的](#webpack-里面的插件时怎么实现的)\n- [dev-server 是怎么跑起来的](#dev-server-是怎么跑起来的)\n- [Webpack 抽取公共文件是怎么配置的](#webpack-抽取公共文件是怎么配置的)\n- [项目中如何处理安全问题](#项目中如何处理安全问题)\n- [怎么实现 this 对象的深拷贝](#怎么实现-this-对象的深拷贝)\n- [使用 canvas 绘图时如何组织成通用组件](#使用-canvas-绘图时如何组织成通用组件)\n- [表单可以跨域吗](#表单可以跨域吗)\n- [搜索请求如何处理？搜索请求中文如何请求？](#搜索请求如何处理搜索请求中文如何请求)\n- [介绍观察者模式](#介绍观察者模式)\n- [介绍中介者模式](#介绍中介者模式)\n- [观察者和订阅-发布的区别，各自用在哪里](#观察者和订阅-发布的区别各自用在哪里)\n- [通过什么做到并发请求](#通过什么做到并发请求)\n- [http1.1 时如何复用 tcp 连接](#http11-时如何复用-tcp-连接)\n- [介绍 service worker](#介绍-service-worker)\n- [介绍 css3 中 position:sticky](#介绍-css3-中-positionsticky)\n- [redux 请求中间件如何处理并发](#redux-请求中间件如何处理并发)\n- [介绍浏览器事件流向](#介绍浏览器事件流向)\n- [介绍事件代理以及优缺点，主要解决什么问题](#介绍事件代理以及优缺点主要解决什么问题)\n- [React 组件中怎么做事件代理？它的原理是什么？](#react-组件中怎么做事件代理它的原理是什么)\n- [介绍下 this 的各种情况](#介绍下-this-的各种情况)\n- [前端如何控制管理路由](#前端如何控制管理路由)\n- [使用路由时出现问题如何解决](#使用路由时出现问题如何解决)\n- [React 怎么做数据的检查和变化](#react-怎么做数据的检查和变化)\n- [react-router 里的 Link 标签和 a 标签有什么区别](#react-router-里的-link-标签和-a-标签有什么区别)\n- [a 标签默认事件禁掉之后做了什么才实现了跳转](#a-标签默认事件禁掉之后做了什么才实现了跳转)\n- [整个前端性能提升大致分几类](#整个前端性能提升大致分几类)\n- [import { Button } from 'antd'，打包的时候只打包 button，分模块加载，是怎么做到的](#import--button--from-antd打包的时候只打包-button分模块加载是怎么做到的)\n- [使用 import 时，webpack 对 node_modules 里的依赖会做什么](#使用-import-时webpack-对-node_modules-里的依赖会做什么)\n- [JavaScript 异步解决方案的发展历程以及优缺点](#javascript-异步解决方案的发展历程以及优缺点)\n- [cookie 放哪里，cookie 能做的事情和存在的价值](#cookie-放哪里cookie-能做的事情和存在的价值)\n- [cookie 和 token 都存放在 header 里面，为什么只劫持前者](#cookie-和-token-都存放在-header-里面为什么只劫持前者)\n- [以下 axios 的特点正确的有哪些？(多选题)](#以下-axios-的特点正确的有哪些多选题)\n- [React 中 Dom 结构发生变化后内部经历了哪些变化](#react-中-dom-结构发生变化后内部经历了哪些变化)\n- [React 挂载的时候有 3 个组件，textComponent、composeComponent、domComponent，区别和关系，Dom 结构发生变化时怎么区分 data 的变化，怎么更新，更新怎么调度，如果更新的时候还有其他任务存在怎么处理](#react-挂载的时候有-3-个组件textcomponentcomposecomponentdomcomponent区别和关系dom-结构发生变化时怎么区分-data-的变化怎么更新更新怎么调度如果更新的时候还有其他任务存在怎么处理)\n- [React 子父组件之间如何传值](#react-子父组件之间如何传值)\n- [Redux 中间件是什么东西？接受几个参数？柯里化函数两端的参数具体是什么东西？](#redux-中间件是什么东西接受几个参数柯里化函数两端的参数具体是什么东西)\n- [Redux 中间件· 中间件是怎么拿到 store 和 action？然后怎么处理？](#redux-中间件-中间件是怎么拿到-store-和-action然后怎么处理)\n- [state 是怎么注入到组件的，从 reducer 到组件经历了什么样的过程](#state-是怎么注入到组件的从-reducer-到组件经历了什么样的过程)\n- [koa 中 response.send、response.rounded、response.json 发生了什么事，浏览器为什么能识别到它是一个 json 结构或是 html](#koa-中-responsesendresponseroundedresponsejson-发生了什么事浏览器为什么能识别到它是一个-json-结构或是-html)\n- [koa-bodyparser 如何解析 request](#koa-bodyparser-如何解析-request)\n- [介绍 AST（Abstract Syntax Tree）抽象语法树](#介绍-astabstract-syntax-tree抽象语法树)\n- [安卓 Activity 之间数据是怎么传递的](#安卓-activity-之间数据是怎么传递的)\n- [说下安卓系统中的 webview](#安卓-40-到-60-过程中-webview-对-js-兼容性的变化)\n- [WebView 和原生是如何通信](#webview-和原生是如何通信)\n- [对 async、await 的理解，内部原理是怎样的？](#对-asyncawait-的理解内部原理是怎样的)\n- [清除浮动的方式](#清除浮动的方式)\n- [接入 Redux 过程？绑定 connect 的过程？connect 的原理](#接入-redux-过程绑定-connect-的过程connect-的原理)\n- [== 和 ===的区别，什么情况下用相等==](#-和-的区别什么情况下用相等)\n- [bind、call、apply 的区别](#bindcallapply-的区别)\n- [介绍下原型链](#介绍下原型链)\n- [Linux 754 介绍](#linux-754-介绍)\n- [介绍冒泡排序、选择排序，说说冒泡排序如何优化](#介绍冒泡排序选择排序说说冒泡排序如何优化)\n- [transform 动画和直接使用 left、top 改变位置有什么优缺点](#transform-动画和直接使用-lefttop-改变位置有什么优缺点)\n- [如何判断链表是否有环](#如何判断链表是否有环)\n- [介绍二叉搜索树的特点](#介绍二叉搜索树的特点)\n- [介绍暂时性死区](#介绍暂时性死区)\n- [ES6 中的 map 和原生的对象有什么区别](#es6-中的-map-和原生的对象有什么区别)\n- [RN 如何调用原生的一些功能、如何和原生进行通信](#rn-如何调用原生的一些功能如何和原生进行通信)\n- [react 异步渲染的概念,介绍 Time Slicing 和 Suspense](#react-异步渲染的概念介绍-time-slicing-和-suspense)\n- [16.X 中 props 改变后在哪个生命周期中处理](#16x-中-props-改变后在哪个生命周期中处理)\n- [对纯函数的理解](#对纯函数的理解)\n- [介绍 JSX](#介绍-jsx)\n- [如何做 RN 在安卓和 IOS 端的适配](#如何做-rn-在安卓和-ios-端的适配)\n- [RN 为什么能在原生中绘制成原生组件](#rn-为什么能在原生中绘制成原生组件)\n- [对虚拟 DOM 的理解？虚拟 DOM 主要做了什么？虚拟 DOM 本身是什么？](#对虚拟-dom-的理解虚拟-dom-主要做了什么虚拟-dom-本身是什么)\n- [cookie 的引用为了解决什么问题](#cookie-的引用为了解决什么问题)\n- [如何设计一个 localStorage，保证数据的时效性](#如何设计一个-localstorage保证数据的时效性)\n- [介绍下 React 高阶组件，和普通组件有什么区别，适用什么场景](#介绍下-react-高阶组件和普通组件有什么区别适用什么场景)\n- [实现 sum 方法，使 sum(x)(y),sum(x,y)返回的结果相同](#实现-sum-方法使-sumxysumxy返回的结果相同)\n- [两个对象如何比较](#两个对象如何比较)\n- [说一下变量的作用域链](#说一下变量的作用域链)\n- [介绍 dom 树对比](#介绍-dom-树对比)\n- [如何设计状态树](#如何设计状态树)\n- [native 提供了什么能力给 RN](#native-提供了什么能力给-rn)\n- [如何做工程上的优化](#如何做工程上的优化)\n- [shouldComponentUpdate 是为了解决什么问题](#shouldcomponentupdate-是为了解决什么问题)\n- [如何解决 props 层级过深的问题](#如何解决-props-层级过深的问题)\n- [前端怎么做单元测试](#前端怎么做单元测试)\n- [pm2 怎么做进程管理，进程挂掉怎么处理](#pm2-怎么做进程管理进程挂掉怎么处理)\n- [不用 pm2 怎么做进程管理](#不用-pm2-怎么做进程管理)\n- [jsonp 方案需要服务端怎么配合](#jsonp-方案需要服务端怎么配合)\n- [Ajax 发生跨域要设置什么（前端）](#ajax-发生跨域要设置什么前端)\n- [加上 CORS 之后从发起到请求正式成功的过程](#加上-cors-之后从发起到请求正式成功的过程)\n- [Async 里面有多个 await 请求，可以怎么优化](#async-里面有多个-await-请求可以怎么优化)\n- [React 遇到性能问题一般在哪个生命周期里解决](#react-遇到性能问题一般在哪个生命周期里解决)\n- [Vue 中一次性 200 条弹幕怎么处理](#vue-中一次性-200-条弹幕怎么处理)\n- [React/Redux 中哪些功能用到了哪些设计模式](#reactredux-中哪些功能用到了哪些设计模式)\n- [JavaScript 变量类型分为几种，区别是什么](#javascript-变量类型分为几种区别是什么)\n- [JavaScript 里垃圾回收机制是什么，常用的是哪种，怎么处理的](#javascript-里垃圾回收机制是什么常用的是哪种怎么处理的)\n- [一般怎么组织 CSS（Webpack）](#一般怎么组织-csswebpack)\n- [一个对象数组，每个子对象包含一个 id 和 name，React 如何渲染出全部的 name？在哪个生命周期里写？其中有几个 name 不存在，通过异步接口获取，如何做？渲染的时候 key 给什么值？可以使用 index 吗？用 id 好还是 index 好？](#一个对象数组每个子对象包含一个-id-和-namereact-如何渲染出全部的-name在哪个生命周期里写其中有几个-name-不存在通过异步接口获取如何做渲染的时候-key-给什么值可以使用-index-吗用-id-好还是-index-好)\n- [webpack 如何配 sass，需要配哪些 loader，配 css 需要哪些 loader](#webpack-如何配-sass需要配哪些-loader配-css-需要哪些-loader)\n- [如何配置把 js、css、html 单独打包成一个文件](#如何配置把-jscsshtml-单独打包成一个文件)\n- [上下固定，中间滚动布局如何实现](#上下固定中间滚动布局如何实现)\n- [ES5 和 ES6 有什么区别](#es5-和-es6-有什么区别)\n- [取数组的最大值（ES5、ES6）](#取数组的最大值es5es6)\n- [some、every、find、filter、map、forEach 有什么区别](#someeveryfindfiltermapforeach-有什么区别)\n- [页面上生成一万个 button，并且绑定事件，如何做（JS 原生操作 DOM）？循环绑定时的 index 是多少，为什么，怎么解决？](#页面上生成一万个-button并且绑定事件如何做js-原生操作-dom循环绑定时的-index-是多少为什么怎么解决)\n- [页面上有一个 input，还有一个 p 标签，改变 input 后 p 标签就跟着变化，如何处理？监听 input 的哪个事件，在什么时候触发？](#页面上有一个-input还有一个-p-标签改变-input-后-p-标签就跟着变化如何处理监听-input-的哪个事件在什么时候触发)\n- [手写数组去重函数(至少三种以上，说明时间复杂度)](#手写数组去重函数至少三种以上说明时间复杂度)\n- [Promise 和 async/await，和 Callback 有什么区别](#promise-和-asyncawait和-callback-有什么区别)\n- [componentWillReceiveProps 的触发条件是什么](#componentwillreceiveprops-的触发条件是什么)\n- [Redux 怎么实现属性传递，介绍下原理](#redux-怎么实现属性传递介绍下原理)\n- [网站 SEO 怎么处理](#网站-seo-怎么处理)\n- [403、301、302 是什么](#403301302-是什么)\n- [HTTPS 怎么建立安全通道，Https 的加密过程](#https-怎么建立安全通道https-的加密过程)\n- [项目中对于用户体验做过什么优化](#项目中对于用户体验做过什么优化)\n- [介绍下数字签名的原理](#介绍下数字签名的原理)\n- [前后端通信使用什么方案](#前后端通信使用什么方案)\n- [RESTful 常用的 Method](#restful-常用的-method)\n- [Access-Control-Allow-Origin 在服务端哪里配置](#access-control-allow-origin-在服务端哪里配置)\n- [前端和后端怎么联调](#前端和后端怎么联调)\n- [如何实现高度自适应](#如何实现高度自适应)\n- [prototype 和proto区别](#prototype-和proto区别)\n- [new 的实现原理，动手实现一个 new](#new-的实现原理动手实现一个-new)\n- [如何实现 H5 手机端的适配](#如何实现-h5-手机端的适配)\n- [em 和 px 的区别](#em-和-px-的区别)\n- [Redux 状态管理器和变量挂载到 window 中有什么区别](#redux-状态管理器和变量挂载到-window-中有什么区别)\n- [webpack 和 gulp 的优缺点](#webpack-和-gulp-的优缺点)\n- [如何去除 url 中的#号](#如何去除-url-中的号)\n- [如何实现分模块打包（多入口）](#如何实现分模块打包多入口)\n- [base64 为什么能提升性能，缺点](#base64-为什么能提升性能缺点)\n- [介绍 webp 这个图片文件格式](#介绍-webp-这个图片文件格式)\n- [介绍 koa2，原理是什么？](#介绍-koa2原理是什么)\n- [异步请求，低版本 fetch 如何低版本适配](#异步请求低版本-fetch-如何低版本适配)\n- [ajax 如何处理跨域？CORSr 如何设置？](#ajax-如何处理跨域corsr-如何设置)\n- [jsonp 为什么不支持 post 方法](#jsonp-为什么不支持-post-方法)\n- [介绍 Immuable](#介绍-immuable)\n- [介绍 JS 全部数据类型，基本数据类型和引用数据类型的区别](#介绍-js-全部数据类型基本数据类型和引用数据类型的区别)\n- [Array 是 Object 类型吗](#array-是-object-类型吗)\n- [说一下栈和堆的区别，垃圾回收时栈和堆的区别](#说一下栈和堆的区别垃圾回收时栈和堆的区别)\n- [数组里面有 10 万个数据，取第一个元素和第 10 万个元素的时间相差多少](#数组里面有-10-万个数据取第一个元素和第-10-万个元素的时间相差多少)\n- [Async/Await 怎么实现](#asyncawait-怎么实现)\n- [JavaScript 为什么要区分微任务和宏任务](#javascript-为什么要区分微任务和宏任务)\n- [Promise 构造函数是同步还是异步执行，then 呢](#promise-构造函数是同步还是异步执行then-呢)\n- [JavaScript 执行过程分为哪些阶段](#javascript-执行过程分为哪些阶段)\n- [词法作用域和 this 的区别](#词法作用域和-this-的区别)\n- [loadsh 深拷贝实现原理](#loadsh-深拷贝实现原理)\n- [ES6 中 let 块作用域是怎么实现的](#es6-中-let-块作用域是怎么实现的)\n- [React 中 setState 后发生了什么？setState 为什么默认是异步？setState 什么时候是同步？](#react-中-setstate-后发生了什么setstate-为什么默认是异步setstate-什么时候是同步)\n- [为什么 3 大框架出现以后就出现很多 native（RN）框架（虚拟 DOM）](#为什么-3-大框架出现以后就出现很多-nativern框架虚拟-dom)\n- [Webpack 打包时 Hash 码是怎么生成的？随机值存在一样的情况，如何避免？](#webpack-打包时-hash-码是怎么生成的随机值存在一样的情况如何避免)\n- [Webpack 做了什么？使用 webpack 构建时有无做一些自定义操作？](#webpack-做了什么使用-webpack-构建时有无做一些自定义操作)\n- [node 接口转发有无做什么优化？node 起服务如何保证稳定性，平缓降级，重启等](#node-接口转发有无做什么优化node-起服务如何保证稳定性平缓降级重启等)\n- [RN 有没有做热加载？RN 遇到的兼容性问题？](#rn-有没有做热加载rn-遇到的兼容性问题)\n- [RN 如何实现一个原生的组件？](#rn-如何实现一个原生的组件)\n- [RN 混原生和原生混 RN 有什么不同？](#rn-混原生和原生混-rn-有什么不同)\n- [介绍单页应用和多页应用？](#介绍单页应用和多页应用)\n- [RN 的原理，为什么可以同时在安卓和 IOS 端运行](#rn-的原理为什么可以同时在安卓和-ios-端运行)\n- [介绍一下网络的五层模型](#介绍一下网络的五层模型)\n- [介绍 SSL 与 TLS](#介绍-ssl-与-tls)\n- [formData 和原生的 ajax 有什么区别](#formdata-和原生的-ajax-有什么区别)\n- [介绍下表单提交，和 formData 有什么关系](#介绍下表单提交和-formdata-有什么关系)\n- [redux 和全局管理有什么区别](#rudux-和全局管理有什么区别)\n- [介绍 MVP 怎么组织](#介绍-mvp-怎么组织)\n- [promise 如何实现 then 处理，动手实现 then](#promise-如何实现-then-处理动手实现-then)\n- [服务端怎么做统一的状态处理](#服务端怎么做统一的状态处理)\n- [如何对相对路径引用进行优化](#如何对相对路径引用进行优化)\n- [介绍 node 文件查找优先级](#介绍-node-文件查找优先级)\n- [npm2 和 npm3 有什么区别](#npm2-和-npm3有什么区别)\n- [如何处理异常捕获](#如何处理异常捕获)\n- [项目如何管理模块](#项目如何管理模块)\n- [尽可能多的写出判断数组的方法](#尽可能多的写出判断数组的方法)\n- [介绍 localstorage 的 api](#介绍-localstorage-的-api)\n- [html 标签 b 和 strong 的区别](#html-标签-b-和-strong-的区别)\n- [使用原型最大的好处](#使用原型最大的好处)\n- [介绍 React 设计思路，它的理念是什么？](#介绍-react-设计思路它的理念是什么)\n- [单例、工厂、观察者项目中实际场景](#单例工厂观察者项目中实际场景)\n- [添加原生事件不移除为什么会内存泄露，还有哪些地方会存在内存泄漏](#添加原生事件不移除为什么会内存泄露还有哪些地方会存在内存泄漏)\n- [setInterval 需要注意的点](#setinterval-需要注意的点)\n- [定时器为什么是不精确的](#定时器为什么是不精确的)\n- [setTimeout(1)和 setTimeout(2)之间的区别](#settimeout1和-settimeout2之间的区别)\n- [介绍宏任务和微任务](#介绍宏任务和微任务)\n- [promise 里面和 then 里面执行有什么区别](#promise-里面和-then-里面执行有什么区别)\n- [props 和 state 的区别](#props-和-state-的区别)\n- [介绍 class 和 ES5 的类以及区别](#介绍-class-和-es5-的类以及区别)\n- [介绍 defineProperty 方法，什么时候需要用到](#介绍-defineproperty-方法什么时候需要用到)\n- [for..in 和 object.keys 的区别](#forin-和-objectkeys-的区别)\n- [使用闭包特权函数的使用场景](#使用闭包特权函数的使用场景)\n- [哪些方法会触发 react 重新渲染？重新渲染 render 会做些什么？](#哪些方法会触发-react-重新渲染重新渲染-render-会做些什么)\n- [state 和 props 触发更新的生命周期分别有什么区别？](#state-和-props-触发更新的生命周期分别有什么区别)\n- [React setState 是同步还是异步？](#react-setstate-是同步还是异步)\n- [对无状态组件的理解](#对无状态组件的理解)\n- [介绍箭头函数的 this](#介绍箭头函数的-this)\n- [找到前 K 个最大的元素](#找到前-k-个最大的元素)\n- [对 React 的看法，它的优缺点，使用过程中遇到的问题，如何解决的](#对-react-的看法它的优缺点使用过程中遇到的问题如何解决的)\n- [JavaScript 是什么范式语言](#javascript-是什么范式语言)\n- [Promise 有没有解决异步的问题](#promise-有没有解决异步的问题)\n- [Promise 和 setTimeout 的区别](#promise-和-settimeout-的区别)\n- [进程和线程的区别](#进程和线程的区别)\n- [介绍下 DFS 深度优先](#介绍下-dfs-深度优先)\n- [按照调用实例，实现下面的 Person 方法](#按照调用实例实现下面的-person-方法)\n- [请写出正确的执行结果](#请写出正确的执行结果)\n- [请写出正确的执行结果](#请写出正确的执行结果-1)\n- [请写出正确的执行结果](#请写出正确的执行结果-2)\n- [请写出正确的执行结果](#请写出正确的执行结果-3)\n- [请写出正确的执行结果](#请写出正确的执行结果-4)\n- [请写出正确的执行结果](#请写出正确的执行结果-5)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因)\n- [请写出正确的执行结果](#请写出正确的执行结果-6)\n- [请写出正确的执行结果](#请写出正确的执行结果-7)\n- [按要求完成代码](#按要求完成代码)\n- [请写出正确的执行结果](#请写出正确的执行结果-8)\n- [请写出正确的执行结果](#请写出正确的执行结果-9)\n- [请修改代码能跳出死循环](#请修改代码能跳出死循环)\n- [修改代码不造成死循环](#修改代码不造成死循环)\n- [请写出代码正确执行结果](#请写出代码正确执行结果)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-1)\n- [计算以上字节每位 <g-emoji class=\"g-emoji\" alias=\"airplane\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2708.png\">✈️</g-emoji> 的起码点，并描述这些字节的起码点代表什么](#计算以上字节每位-️-的起码点并描述这些字节的起码点代表什么)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-1)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-2)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-2)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-3)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-3)\n- [请问当前 textarea 文本框展示的内容是什么？](#请问当前-textarea-文本框展示的内容是什么)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-4)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-5)\n- [请写出代码正确执行结果，并解释为什么](#请写出代码正确执行结果并解释为什么)\n- [请手写实现一个拖拽](#请手写实现一个拖拽)\n- [请手动实现一个浅拷贝](#请手动实现一个浅拷贝)\n- [介绍 instanceof 原理，并手动实现](#介绍-instanceof-原理并手动实现)\n- [请实现一个 JSON.stringfy](#请实现一个-jsonstringfy)\n- [请实现一个 JSON.parse](#请实现一个-jsonparse)\n- [说一下减少 dom 数量的办法？一次性给你大量的 dom 怎么优化？](#说一下减少-dom-数量的办法一次性给你大量的-dom-怎么优化)\n- [vue hooks 有哪些](#vue-hooks-有哪些)\n- [介绍 Vue template 到 render 的过程](#介绍-vue-template-到-render-的过程)\n- [为什么用 gulp 打包 node](#为什么用-gulp-打包-node)\n- [Node 不支持哪些 ES6 语法](#node-不支持哪些-es6-语法)\n- [Webpack 为什么慢，如何进行优化](#webpack-为什么慢如何进行优化)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-4)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-5)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-6)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-7)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-8)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因)\n- [以下选项为 css 盒模型属性有哪些？(多选题)](#以下选项为-css-盒模型属性有哪些多选题)\n- [递归公式的时间复杂度为？(单选题)](#递归公式的时间复杂度为单选题)\n- [以下说法中对协议描述不正确的是？(单选题)](#以下说法中对协议描述不正确的是单选题)\n- [以下哪些是 HTTP 请求中浏览器缓存机制会用到的协议头？(多选题)](#以下哪些是-http-请求中浏览器缓存机制会用到的协议头单选题)\n- [怎么定义 vue-router 的动态路由？怎么获取传过来的动态参数？](#怎么定义-vue-router-的动态路由怎么获取传过来的动态参数)\n- [JavaScript 中如何模拟实现方法的重载](#javascript-中如何模拟实现方法的重载)\n- [请解释 JSONP 的工作原理](#请解释-jsonp-的工作原理)\n- [用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。](#用-htmlcssjs-模拟实现一个下拉框使得下拉框在各个浏览器下的样式和行为完全一致说出你的设计方案并且重点说明功能设计时要考虑的因素)\n- [用 JavaScript 实现一个标准的排序算法(快排、冒泡、选择排序)，对某个数字数组进行由低到高的排序。](#用-javascript-实现一个标准的排序算法快排冒泡选择排序对某个数字数组进���由低到高的排序)\n- [实现一个打点计时器](#实现一个打点计时器)\n- [下面关于 Vue 说法正确的是？(单选题)](#下面关于-vue-说法正确的是单选题)\n- [JavaScript 写一个单例模式，可以具体到某一个场景](#javascript-写一个单例模式可以具体到某一个场景)\n- [JavaScript 基本数据类型都有哪些？用 typeOf 判断分别显示什么？](#javascript-基本数据类型都有哪些用-typeof-判断分别显示什么)\n- [怎么判断引用类型数据，兼容判断原始类型数据呢？](#怎么判断引用类型数据兼容判断原始类型数据呢)\n- [请写下你对协商缓存和强缓存的理解？](#请写下你对协商缓存和强缓存的理解)\n- [git pull -rebase 和 git pull 的区别是什么？](#git-pull--rebase-和-git-pull-的区别是什么)\n- [说下盒模型的区别？介绍一下标准的 CSS 盒模型？border-box 和 content-box 有什么区别？](#说下盒模型的区别介绍一下标准的-css-盒模型border-box-和-content-box-有什么区别)\n- [给出页面的加载顺序](#给出页面的加载顺序)\n- [Html5 有哪些新特性？如何处理 Html5 新标签的浏览器兼容问题？如何区分 Html 和 Html5?](#html5-有哪些新特性如何处理-html5-新标签的浏览器兼容问题如何区分-html-和-html5)\n- [找出“aaaabbcccdddd”字符串中出现最多的字母？](#找出aaaabbcccdddd字符串中出现最多的字母)\n- [概述异步编程模型](#概述异步编程模型)\n- [在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标](#在一个-ul-里有-10-个-li实现点击对应的-li输出对应的下标)\n- [分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]](#分别对以下数组进行去重11122321123123456)\n- [简述 JavaScript 中的函数的几种调用方式](#简述-javascript-中的函数的几种调用方式)\n- [编写一个 Person 类，并创建两个不同的 Person 对象](#编写一个-person-类并创建两个不同的-person-对象)\n- [详细描述一个 http 请求从发起请求到收到响应的全部过程(越细越好)](#详细描述一个-http-请求从发起请求到收到响应的全部过程越细越好)\n- [简述静态链接和动态链接的区别，并举例说明](#简述静态链接和动态链接的区别并举例说明)\n- [求 n 以内的所有素数，并说明时间复杂度](#求-n-以内的所有素数并说明时间复杂度)\n- [手写实现 call](#手写实现-call)\n- [手写实现 apply](#手写实现-apply)\n- [一个 dom 必须要操作几百次，该如何解决，如何优化？](#一个-dom-必须要操作几百次该如何解决如何优化)\n- [为什么要用 Vuex 或者 Redux，不要说为了保存状态](#为什么要用-vuex-或者-redux不要说为了保存状态)\n- [为什么 Vue data 必须是函数](#为什么-vue-data-必须是函数)\n- [页面埋点怎么实现](#页面埋点怎么实现)\n- [除了 jsonp、postmessage 后端控制，怎么实现跨页面通讯](#除了-jsonppostmessage-后端控制怎么实现跨页面通讯)\n- [Vue data 中某一个属性的值发生改变后，视图会立即同步执行重新渲染吗？](#vue-data-中某一个属性的值发生改变后视图会立即同步执行重新渲染吗)\n- [Webpack 打包出来的体积太大，如何优化体积？](#webpack-打包出来的体积太大如何优化体积)\n- [缓存有哪些？前端缓存有哪些？怎么用？如何和后台配合](#缓存有哪些前端缓存有哪些怎么用如何和后台配合)\n- [说一下 let、const 的实现，动手实现一下](#说一下-letconst-的实现动手实现一下)\n- [简述 mixin、extends 的覆盖逻辑](#简述-mixinextends-的覆盖逻辑)\n- [Vue 子组件和父组件执行顺序](#vue-子组件和父组件执行顺序)\n- [Dom tree 和 cssdom 是如何合并成 render tree 的](#dom-tree-和-cssdom-是如何合并成-render-tree-的)\n- [addEventListener 再 removeListener 会不会造成内存泄漏](#addeventlistener-再-removelistener-会不会造成内存泄漏)\n- [scrollview 如何进行性能优化(例如 page=100 时，往上滚动))](#scrollview-如何进行又能优化例如-page100-时往上滚动)\n- [原生 JavaScript 获取 ul 中的第二个 li 里边的 p 标签的内容](#原生-javascript-获取-ul-中的第二个-li-里边的-p-标签的内容)\n- [说下 offsetWith 和 clientWidth、offsetHeight 和 clientHeight 的区别，说说 offsetTop，offsetLeft，scrollWidth、scrollHeight 属性都是干啥的](#说下-offsetwith-和-clientwidthoffsetheight-和-clientheight-的区别说说-offsettopoffsetleftscrollwidthscrollheight-属性都是干啥的)\n- [Css 单位都有哪些？](#css-单位都有哪些)\n- [Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准](#css-实现多列等高布局要求元素实际占用的高度以多列中较高的为准)\n- [一个标签的 class 样式的渲染顺序，id、class、标签、伪类的优先级](#一个标签的-class-样式的渲染顺序idclass标签伪类的优先级)\n- [写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组](#写一个函数打乱一个数组传入一个数组返回一个打乱的新数组)\n- [数组截取插入 splice，push 返回值，数组的栈方法、队列方法、排序方法、操作方法、迭代方法说一下](#数组截取插入-splicepush-返回值数组的栈方法队列方法排序方法操作方法迭代方法说一下)\n- [判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型](#判断一个变量的类型写个方法用-objectprototypetostring-判断传入数据的类型)\n- [判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型？Object.prototype.toString.call(Symbol) 返回什么？](#判断一个变量的类型写个方法用-objectprototypetostring-判断传入数据的类型objectprototypetostringcallsymbol-返回什么)\n- [对作用域和闭包的理解，解释下 let 和 const 的块级作用域](#对作用域和闭包的理解解释下-let-和-const-的块级作用域)\n- [以下代码输出什么？](#以下代码输出什么)\n- [switch case，case 具体是怎么比较的，哪些情况下会走到 default](#switch-casecase-具体是怎么比较的哪些情况下会走到-default)\n- [说下 typeof()各种类型的返回值？instanceof 呢？](#说下-typeof各种类型的返回值instanceof-呢)\n- [if([] == 0), [1,2] == \"1,2\", if([]), [] == 0 具体是怎么对比的](#if--0-12--12-if---0-具体是怎么对比的)\n- [如何加快页面渲染速度，都有哪些方式](#如何加快页面渲染速度都有哪些方式)\n- [generator 的实现原理](#genertor-的实现原理)\n- [CDN 分布式部署，如何处理用户请求最近的资源？](#cdn-分布式部署如果处理用户请求最近的资源)\n- [说一下缓存有哪几种，具体都是怎么实现和比较的，缓存优先级，相互之间的对比](#说一下缓存有哪几种具体都是怎么实现和比较的缓存优先级相互之间的对比)\n- [使用 typescript 的优势有哪些](#使用-typescript-的优势有哪些)\n- [说下你对浏览器缓存理解](#说下你对浏览器缓存理解)\n- [css 如何实现动画](#css-如何实现动画)\n- [判断是否是数组的方法](#判断是否是数组的方法)\n- [给定一个二叉树，找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点](#给定一个二叉树找出其最大深度二叉树的深度为根节点到最远叶子节点的最长路径上的节点数说明-叶子节点是指没有子节点的节点)\n- [给定一个整数数组 nums，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和](#给定一个整数数组-nums找到一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和)\n- [手写 EventEmitter 实现](#手写-eventemitter-实现)\n- [Http 连接是如何复用的](#http-连接是如何复用的)\n- [给出的两行代码为什么这么输出](#给出的两行代码为什么这么输出)\n- [动画性能如何检测](#动画性能如何检测)\n- [谈下淘宝和京东页面的实现](#谈下淘宝和京东页面的实现)\n- [平时都用到了哪些设计模式](#平时都用到了哪些设计模式)\n- [如何监控 MySql、Redis 性能](#如何监控-mysqlredis-性能)\n- [对 service worker 的理解](#对-service-worker-的理解)\n- [Webpack 热更新的原理](#webpack-热更新的原理)\n- [Css 如何实现一个半圆](#css-如何实现一个半圆)\n- [一个活动项目里包含多个活动，Webpack 如何实现单独打包某个活动？](#一个活动项目里包含多个活动webpack-如何实现单独打包某个活动)\n- [单点登录实现原理](#单点登录实现原理)\n- [尾递归实现](#尾递归实现)\n- [有 1000 个 dom，需要更新其中的 100 个，如何操作才能减少 dom 的操作？](#有-1000-个-dom需要更新其中的-100-个如何操作才能减少-dom-的操作)\n- [商城的列表页跳转到商品的详情页，详情页数据接口很慢，前端可以怎么优化用户体验？](#商城的列表页跳转到商品的详情页详情页数据接口很慢前端可以怎么优化用户体验)\n- [多个 tab 只对应一个内容框，点击每个 tab 都会请求接口并渲染到内容框，怎么确保频繁点击 tab 但能够确保数据正常显示？](#多个-tab-只对应一个内容框点击每个-tab-都会请求接口并渲染到内容框怎么确保频繁点击-tab-但能够确保数据正常显示)\n- [301、302 的 https 被挟持怎么办？](#301302-的-https-被挟持怎么办)\n- [介绍 Http2 特性，Http2 怎么确保文件同时传输不会报错](#介绍-http2-特性http2-怎么确保文件同时传输不会报错)\n- [请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)](#请实现鼠标点击页面中的任意标签alert-该标签的名称注意兼容性)\n- [完成一个表达式，验证用户输入是否是电子邮箱](#完成一个表达式验证用户输入是否是电子邮箱)\n- [原生实现 ES5 的 Object.create()方法](#原生实现-es5-的-objectcreate方法)\n- [列举并解释一下 http 的所有请求方法，](#列举并解释一下-http-的所有请求方法)\n- [如何记录前端在用户浏览器上发生的错误并汇报给服务器？](#如何记录前端在用户浏览器上发生的错误并汇报给服务器？)\n- [有哪几种方式可以解决跨域问题？(描述对应的原理)](#有哪几种方式可以解决跨域问题描述对应的原理)\n- [按要求完成题目](#按要求完成题目)\n- [你是如何组织 JavaScript 代码的？（可以从模块、组件、模式、编程思想等方面回答）](#你是如何组织-javascript-代码的可以从模块组件模式编程思想等方面回答)\n- [移动 web 开发时如何调试？了解哪些多屏适配方案？](#移动-web-开发时如何调试了解哪些多屏适配方案)\n- [算法考察：Next Permutation](#算法考察next-permutation)\n- [填充代码实现 template 方法](#填充代码实现-template-方法)\n- [请说明 Html 布局元素的分类有哪些？并描述每种布局元素的应用场景？](#请说明-html-布局元素的分类有哪些并描述每种布局元素的应用场景)\n- [列举出在浏览器中，页面加载过程中发出了哪些事件？并画出这些事件的执行顺序？](#列举出在浏览器中页面加载过程中发出了哪些事件并画出这些事件的执行顺序)\n- [请描述下为什么页面需要做优化？并写出常用的页面优化实现方案？](#请描述下为什么页面需要做优化并写出常用的页面优化实现方案)\n- [请画出 css 盒模型，基于盒模型的原理，说明相对定位、绝对定位、浮动实现样式是如何实现的？](#请画出-css-盒模型基于盒模型的原理说明相对定位绝对定位浮动实现样式是如何实现的)\n- [列举出 css 选择器有哪些分类，并至少写出三个 css 选择器之间的区别，适用场景](#列举出-css-选择器有哪些分类并至少写出三个-css-选择器之间的区别适用场景)\n- [请列出至少 5 个 JavaScript 常用的内置对象，说明用途](#请列出至少-5-个-javascript-常用的内置对象说明用途)\n- [请描述下 JavaScript 中 Scope、Closure、Prototype 概念，并说明 JavaScript 封装、继承实现原理。](#请描述下-javascript-中-scopeclosureprototype-概念并说明-javascript-封装继承实现原理)\n- [请列出目前主流的 JavaScript 模块化实现的技术有哪些？说出它们的区别？](#请列出目前主流的-javascript-模块化实现的技术有哪些说出它们的区别)\n- [请列出 HTTP/1.1 协议 Response 状态码：20x、30x、40x、50x 等各区间的含义，并说明 Action 在 Restful API 中分别使用哪些 Http 副词(action)表现出 CRUD?](#请列出-http11-协议-response-状态码20x30x40x50x-等各区间的含义并说明-action-在-restful-api-中分别使用哪些-http-副词action表现出-crud)\n- [请说明 JavaScript 进行压缩、合并、打包实现的原理是什么？为什么需要压缩、合并、打包？分别列出一种常用工具或插件](#请说明-javascript-进行压缩合并打包实现的原理是什么为什么需要压缩合并打包分别列出一种常用工具或插件)\n- [请说出前端框架设计模式(MVVM 或 MVP 又或 MVC)的含义以及原理](#请说出前端框架设计模式mvvm-或-mvp-又或-mvc的含义以及原理)\n- [请用 JavaScript 代码实现事件代理](#请用-javascript-代码实现事件代理)\n- [实现格式化输出，比如输入 999999999，输出 999,999,999](#实现格式化输出比如输入-999999999输出-999999999)\n- [使用 JavaScript 实现 cookie 的设置、读取、删除](#使用-javascript-实现-cookie-的设置读取删除)\n- [请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"<a href=\"http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2\" rel=\"nofollow\">http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2</a>\"](#请编写一个-javascript-函数-parsequerystring它的用途是把-url-参数解析为一个对象urlhttpiauto360cnindexphpkey00key11key22)\n- [node 如何进行跨域通信](#node-如何进行跨域通信)\n- [Vuex 和 localStorage 的区别](#vuex-和-localstorage-的区别)\n- [如何实现 a,b 两个变量的交换](#如何实现-ab-两个变量的交换)\n- [Vue 双向绑定原理](#vue-双向绑定原理)\n- [开发环境热更新的优化方式](#开发环境热更新的优化方式)\n- [给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符](#给-javascript-的-string-原生对象添加一个名为-trim-的原型方法用于截取字符串前后的空白字符)\n- [按要求实现代码](#按要求实现代码)\n- [说一下路由钩子在 Vue 生命周期的体现？](#说一下路由钩子在-vue-生命周期的体现)\n- [计算属性和普通属性的区别](#计算属性和普通属性的区别)\n- [描述下自定义指令(你是怎么用自定义指令的)](#描述下自定义指令你是怎么用自定义指令的)\n- [说一下 Vue 中所有带$的方法](#说一下-vue-中所有带的方法)\n- [catch-control 有哪些设定值](#catch-control-有哪些设定值)\n- [AMD 和 CMD 有哪些区别？](#amd-和-cmd-有哪些区别)\n- [微任务和宏任务的区别](#微任务和宏任务的区别)\n- [你是怎么配置开发环境的？](#你是怎么配置开发环境的)\n- [列举 3 种强制类型转换和 2 种隐式类型转换](#列举-3-种强制类型转换和-2-种隐式类型转换)\n- [小程序里面打开页面最多多少，生命周期、常用的 api 列举几个？](#小程序里面打开页面最多多少生命周期常用的-api-列举几个)\n- [Vue-router 除了 router-link 怎么实现跳转](#vue-router-除了-router-link-怎么实现跳转)\n- [原生 JavaScript 实现图片懒加载的思路](#原生-javascript-实现图片懒加载的思路)\n- [回调函数和任务队列的区别](#回调函数和任务队列的区别)\n- [如何实现 webpack 持久化缓存](#如何实现-webpack-持久化缓存)\n- [找出两个数组的交集元素](#找出两个数组的交集元素)\n- [Css 实现 div 宽度自适应，宽高保持等比缩放](#css-实现-div-宽度自适应宽高保持等比缩放)\n- [ul 内部除最后一个 li 以外设置右边框效果](#ul-内部除最后一个-li-以外设置右边框效果)\n- [flex:1 的完整写法是？分别是什么意思？](#flex1-的完整写法是分别是什么意思)\n- [写出下面代码的输出结果](#写出下面代码的输出结果)\n- [用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定](#用-typescript-实现函数-caller接收一个函数作为第一个参数其返回参数类型由接收的函数参数决定)\n- [有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”](#有这样一个函数-a要求在不改变原有函数-a-功能以及调用方式的情况下使得每次调用该函数都能在控制台打印出helloworld)\n- [在浏览器执行以下代码，写出打印结果](#在浏览器执行以下代码写出打印结果)\n- [输入一个整数，输出该数二进制表示中 1 的个数](#输入一个整数输出该数二进制表示中-1-的个数)\n- [行内元素和块级元素有什么区别](#行内元素和块级元素有什么区别)\n- [link 和@inmport 区别](#link-和inmport-区别)\n- [⽤ js 实现随机选取 10–100 之间的 10 个且不重复的数字，存⼊⼀个数组，还要排序](#-js-实现随机选取-10100-之间的-10-个且不重复的数字存个数组还要排序)\n- [请写出弹出值，并解释为什么？](#请写出弹出值并解释为什么)\n- [写出输出值，并解释为什么](#写出输出值并解释为什么)\n- [请写出代码执⾏结果，并解释为什么](#请写出代码执结果并解释为什么)\n- [请写出代码执⾏结果，并解释为什么](#请写出代码执结果并解释为什么-1)\n- [给定⼀个⼤⼩为 n 的数组，找到其中的众数。众数是指在数组中出现次数⼤于 n/2 的元素](#给定个为-n-的数组找到其中的众数众数是指在数组中出现次数于--n2--的元素)\n- [HTTP2.0的多路复⽤和HTTP1.X中的⻓连接复⽤有什么区别？](#http20的多路复和http1x中的连接复有什么区别)\n- [HTTP2.0多路复⽤有多好？](#http20多路复有多好)\n- [React兄弟组件的通信方式？(需回答两种以上)](#react兄弟组件的通信方式需回答两种以上)\n- [Fiber算法原理，相比之前的stack算法哪些方面做了优化？](#fiber算法原理相比之前的stack算法哪些方面做了优化)\n- [如何实现双向绑定，并抽象成公共组件](#如何实现双向绑定并抽象成公共组件)\n- [原生实现addClass,用多种方法](#原生实现addclass用多种方法)\n- [实现一个倒计时,setInterval实现的话，如何消除时间误差](#实现一个倒计时setinterval实现的话如何消除时间误差)\n- [React SSR实现过程？原理是什么？有什么注意事项？](#react-ssr实现过程原理是什么有什么注意事项)\n- [Node性能如何进监控以及优化？](#node性能如何进监控以及优化)\n- [http请求由什么组成？](#http请求由什么组成)\n- [屏幕正中间有个元素A，元素A中有文字A，随着屏幕宽度的增加，始终需要满足下列条件](#屏幕正中间有个元素a元素a中有文字a随着屏幕宽度的增加始终需要满足下列条件)\n- [函数中的arguments是数组吗？若不是，如何将它转化为真正的数组？](#函数中的arguments是数组吗若不是如何将它转化为真正的数组)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果-2)\n- [以最小的改动解决以下代码的错误(可以使用ES6)](#以最小的改动解决以下代码的错误可以使用es6)\n- [实现Function 原型的bind方法，使得以下程序最后能输出“success”](#实现function-原型的bind方法使得以下程序最后能输出success)\n\n### 写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,...,a+nb 的时间，然后写一个 myClear，停止上面的 mySetInterVal\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/7)\n\n<br/>\n\n### 合并二维有序数组成一维有序数组，归并排序的思路\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/8)\n\n<br/>\n\n### 斐波那契数列\n\n公司：腾讯、CVTE、微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/9)\n\n<br/>\n\n### 字符串出现的不重复最长长度\n\n公司：腾讯\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/10)\n\n<br/>\n\n### 介绍chrome 浏览器的几个版本\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/11)\n\n<br/>\n\n### React 项目中有哪些细节可以优化？实际开发中都做过哪些性能优化\n\n公司：滴滴、掌门一对一、网易、有赞、沪江、喜马拉雅、酷家乐、快手\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/12)\n\n<br/>\n\n### react 最新版本解决了什么问题 加了哪些东西\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/13)\n\n<br/>\n\n### 说一下 Http 缓存策略，有什么区别，分别解决了什么问题\n\n公司：滴滴、头条、网易、易车、脉脉、掌门一对一、虎扑、挖财、爱范儿\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/14)\n\n<br/>\n\n### 介绍防抖节流原理、区别以及应用，并用JavaScript进行实现\n\n公司：滴滴、虎扑、挖财、58、头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/15)\n\n<br/>\n\n### 前端安全、中间人攻击\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/16)\n\n<br/>\n\n### 对闭包的看法，为什么要用闭包？说一下闭包原理以及应用场景\n\n公司：滴滴、携程、喜马拉雅、微医、蘑菇街、酷家乐、腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/17)\n\n<br/>\n\n### css 伪类与伪元素区别\n\n公司：滴滴\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/18)\n\n<br/>\n\n### 有一堆整数，请把他们分成三份，确保每一份和尽量相等（11，42，23，4，5，6 4 5 6 11 23 42 56 78 90）\n\n公司：滴滴\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/19)\n\n<br/>\n\n### 实现 lodash 的_.get\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/20)\n\n<br/>\n\n### 实现 add(1)(2)(3)\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/21)\n\n<br/>\n\n### 实现链式调用\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/22)\n\n<br/>\n\n### React 事件绑定原理\n\n公司：滴滴、沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/23)\n\n<br/>\n\n### 类数组和数组的区别，dom 的类数组如何转换成数组\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/24)\n\n<br/>\n\n### webpack 做过哪些优化，开发效率方面、打包策略方面等等\n\n公司：滴滴、快手、掌门一对一、高思教育\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/25)\n\n<br/>\n\n### 说一下事件循环机制(node、浏览器)\n\n公司：滴滴、伴鱼、高德、自如、虎扑、58\n\n分类：Node、JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/26)\n\n<br/>\n\n### 如何封装 node 中间件\n\n公司：滴滴、酷狗\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/27)\n\n<br/>\n\n### node 中间层怎样做的请求合并转发\n\n公司：易车\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/28)\n\n<br/>\n\n### 介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise\n\n公司：滴滴、头条、喜马拉雅、兑吧、寺库、百分点、58、安居客\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/29)\n\n<br/>\n\n### 实现 Promise.all\n\n```js\nPromise.all = function (arr) {\n  // 实现代码\n};\n```\n\n公司：滴滴、头条、有赞、微医\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/30)\n\n<br/>\n\n### React 组件通信方式\n\n公司：滴滴、掌门一对一、喜马拉雅、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/31)\n\n<br/>\n\n### redux-saga 和 mobx 的比较\n\n公司：掌门一对一\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/32)\n\n<br/>\n\n### 说一下 react-fiber\n\n公司：头条、滴滴、菜鸟网络、挖财、喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/33)\n\n<br/>\n\n### 手写发布订阅\n\n公司：滴滴、头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/34)\n\n<br/>\n\n### 手写数组转树\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/35)\n\n<br/>\n\n### 手写用 ES6proxy 如何实现 arr[-1] 的访问\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/36)\n\n<br/>\n\n### 手写实现 Array.flat()\n\n公司：滴滴、快手、携程\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/242)\n\n<br/>\n\n### react 实现一个全局的 dialog\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/241)\n\n<br/>\n\n### [实操题]输入一条 polyline，输出 polyline 的中点\n\n题目补充：\n\n```js\n算法：输入一条polyline，输出polyline的中点\n绘制：在浏览器中绘制出polyline和中点\n说明：中点是指沿着polyline，到polyline的起点和终点，距离相等，中点要求在polyline上\n输入：[[10, 20], [20, 200], [30, 220], [40, 300], [100, 400]]，以[10, 20]举例，10代表x坐标，20代表y坐标，单位是像素\n要求：提供源代码，用原生JavaScript实现，不使用任何框架、类库、构建工具，本地打开html文件可直接看到效果\n```\n\n公司：腾讯\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/240)\n\n<br/>\n\n### Umi 和 dva 分别是干嘛用的？为什么会有 umi dva 的出现？使用起来有什么不方便的地方吗？\n\n公司：洋葱学院\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/239)\n\n<br/>\n\n### React 数据持久化有什么实践吗？\n\n公司：洋葱学院\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/238)\n\n<br/>\n\n### 使用过 mobx mobx 和 redux 有什么区别？\n\n公司：洋葱学院\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/237)\n\n<br/>\n\n### 文件上传如何做断点续传\n\n公司：网易、洋葱学院\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/236)\n\n<br/>\n\n### 大数计算如何实现\n\n公司：洋葱学院\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/235)\n\n<br/>\n\n### 请用算法实现，从给定的无序、不重复的数组data中，取出n个数，使其相加和为sum。并给出算法的时间/空间复杂度。(不需要找到所有的解，找到一个解即可)\n\n```js\nfunction getResult(data,n,sum){\n  // your code\n}\n```\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/902)\n\n<br/>\n\n### 什么是深拷贝，和浅拷贝有什么区别，动手实现一个深拷贝\n\n公司：顺丰、新东方、高德、虎扑、微医、百分点、酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/903)\n\n<br/>\n\n### 实现一个方法判断 html 中的标签是否闭合\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/234)\n\n<br/>\n\n### mysql 和 mongodb 区别\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/233)\n\n<br/>\n\n### V8 机制讲解\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/232)\n\n<br/>\n\n### 说一下盒子模型，以及标准情况和 IE 下的区别\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/231)\n\n<br/>\n\n### 箭头函数和普通函数的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/230)\n\n<br/>\n\n### 说下 webpack 的 loader 和 plugin 的区别，都使用过哪些 loader 和 plugin\n\n公司：阿里、滴滴、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/229)\n\n<br/>\n\n### Css 如何画出一个扇形，动手实现下\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/228)\n\n<br/>\n\n### 介绍下 webpack，并说下 Webpack 的构建流程\n\n公司：头条、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/227)\n\n<br/>\n\n### 说下 tree-shaking 的原理\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/226)\n\n<br/>\n\n### Webp 格式的图片怎么生成，使用有什么兼容性问题，如何怎么解决\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/225)\n\n<br/>\n\n### React 高阶组件 renderprops hooks 有什么区别，为什么要不断迭代\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/224)\n\n<br/>\n\n### 说一下 React setState 原理\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/223)\n\n<br/>\n\n### 说一下 React diff 算法\n\n公司：脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/222)\n\n<br/>\n\n### 说一下 React 生命周期，以及都有哪些改变，为什么去掉了那几个旧的生命周期\n\n公司：完美世界、高德、脉脉、有赞、挖财、沪江、携程、喜马拉雅、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/221)\n\n<br/>\n\n### React key 是干嘛用的 为什么要加？key 主要是解决哪一类问题的\n\n公司：滴滴、挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/220)\n\n<br/>\n\n### Redux 中异步的请求怎么处理\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/219)\n\n<br/>\n\n### CDN 是什么？描述下 CDN 原理？为什么要用 CDN?\n\n公司：头条、滴滴、网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/218)\n\n<br/>\n\n### PWA 是什么？对 PWA 有什么了解\n\n公司：头条、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/217)\n\n<br/>\n\n### 讲一下 webpack 原理， loader 和 plugin，你知道哪些模块化标准，说下 cjs 和 esmodule 的区别\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/216)\n\n<br/>\n\n### es5 实现 isInteger\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/215)\n\n<br/>\n\n### 单向链表实现队列\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/214)\n\n<br/>\n\n### 写出输出结果\n\n```js\nfunction Foo() {\n  getName = function () {\n    alert(1);\n  };\n  return this;\n}\nvar getName;\nfunction getName() {\n  alert(5);\n}\nFoo.getName = function () {\n  alert(2);\n};\nFoo.prototype.getName = function () {\n  alert(3);\n};\ngetName = function () {\n  alert(4);\n};\n\nFoo.getName(); // ？\ngetName(); // ？\nFoo().getName(); // ？\ngetName(); // ？\nnew Foo.getName(); // ?\nnew Foo().getName(); // ?\nnew new Foo().getName(); // ？\n```\n\n公司：心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/213)\n\n<br/>\n\n### 将给定的数组从顶级分类递归查找子分类，最终构建一个树状数组\n\n```js\n/*\n *数组：[{id:1, parentId: 0}, {id:2, parentId:1},{id:3, parentId:1}]\n *输出结果：[{id:1, parentId: 0,children:[{id:2, parentId:1},{id:3, parentId:1}]}]\n *说明：parentId为0 的是根节点\n */\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/212)\n\n<br/>\n\n### 手写 dom 操作，翻转 li 标签，如何处理更优\n\n```js\n/*\n *有下边这样的dom结构，现在可以获取到ul，要求翻转里边li标签，如何处理更优\n */\n<ul>\n  <li>1</li>\n  <li>2</li>\n  <li>3</li>\n</ul>\n```\n\n公司：快手\n\n分类：\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/211)\n\n<br/>\n\n### 怎样判断一个对象是否是数组，如何处理类数组对象\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/210)\n\n<br/>\n\n### 是否熟悉 Node，主要做过哪些业务，平时用过什么包？\n\n公司：快手\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/209)\n\n<br/>\n\n### 是否了解 glob，glob 是如何处理文件的，业界是否还有其它解决方案\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/208)\n\n<br/>\n\n### 说一下 Vue 的 keep-alive 是如何实现的，具体缓存的是什么？\n\n公司：快手\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/207)\n\n<br/>\n\n### Redux 和 Vuex 有什么区别，说下一它们的共同思想\n\n公司：快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/206)\n\n<br/>\n\n### 谈一下微信小程序的架构以及为什么要用到双线程\n\n公司：快手\n\n分类：小程序\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/205)\n\n<br/>\n\n### 随便打开一个网页，用 JavaScript 打印所有以 s 和 h 开头的标签，并计算出标签的种类\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/204)\n\n<br/>\n\n### `1000*1000` 的画布，上面有飞机、子弹，如何划分区域能够更有效的做碰撞检测，类似划分区域大小与碰撞检测效率的算法，说一下大致的思路\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/203)\n\n<br/>\n\n### 移动设备安卓与 iOS 的软键盘弹出的处理方式有什么不同\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/202)\n\n<br/>\n\n### iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决\n\n公司：快手\n\n分类：JavaScript、Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/201)\n\n<br/>\n\n### 给定一个数组，按找到每个元素右侧第一个比它大的数字，没有的话返回-1 规则返回一个数组\n\n```js\n/*\n *示例：\n *给定数组：[2,6,3,8,10,9]\n *返回数组：[6,8,8,10,-1,-1]\n */\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/199)\n\n<br/>\n\n### 说一说 promise，有几个状态，通过 catch 捕获到 reject 之后，在 catch 后面还能继续执行 then 方法嘛，如果能执行执行的是第几个回调函数\n\n公司：伴鱼、喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/198)\n\n<br/>\n\n### var、let、const 的区别\n\n公司：伴鱼、百分点、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/197)\n\n<br/>\n\n### 说一下 GC\n\n公司：伴鱼\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/195)\n\n<br/>\n\n### BFC 是什么？触发 BFC 的条件是什么？有哪些应用场景？\n\n公司：快手、伴鱼、网易\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/194)\n\n<br/>\n\n### 说一下浏览器解析 Html 文件的过程\n\n公司：伴鱼\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/193)\n\n<br/>\n\n### 说一下什么是重绘重排，哪些操作会造成重绘重排\n\n公司：滴滴、伴鱼、菜鸟网络、58\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/192)\n\n<br/>\n\n### 什么情况会出现浏览器分层\n\n公司：伴鱼\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/191)\n\n<br/>\n\n### 通过 link 进来的 css 会阻塞页面渲染嘛，Js 会阻塞吗，如果会如何解决？\n\n公司：伴鱼\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/190)\n\n<br/>\n\n### 如何实现按需加载\n\n公司：伴鱼、腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/189)\n\n<br/>\n\n### 讲一下 import 的原理，与 require 有什么不同\n\n公司：伴鱼、腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/188)\n\n<br/>\n\n### 为什么 useState 要使用数组而不是对象\n\n公司：伴鱼\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/187)\n\n<br/>\n\n### 从输入 URL 到页面加载全过程\n\n公司：头条、边锋、菜鸟网络、爱范儿、心娱\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/186)\n\n<br/>\n\n### 请实现如下的函数\n\n```js\n/*\n\t可以批量请求数据，所有的 URL 地址在 urls 参数中，同时可以通过 max 参数控制请求的并发度，当所有请求结束之后，需要执行 callback 回调函数。发请求的函数可以直接使用 fetch 即可\n*/\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/185)\n\n<br/>\n\n### DNS 解析的具体过程\n\n公司：边锋、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/184)\n\n<br/>\n\n### 常见的 http 请求头都有哪些，以及它们的作用\n\n公司：阿里、边锋、喜马拉雅、玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/183)\n\n<br/>\n\n### encoding 头都有哪些编码方式\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/182)\n\n<br/>\n\n### utf-8 和 asc 码有什么区别\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/181)\n\n<br/>\n\n### tcp 和 udp 有什么区别？tcp 怎样确保数据正确性？tcp 头包含什么？tcp 属于那一层？\n\n公司：头条、边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/180)\n\n<br/>\n\n### 传输层和网络层分别负责什么，端口在什么层标记\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/179)\n\n<br/>\n\n### 介绍下 Https，和 http 的区别是什么？https 为什么比 http 安全？如何进行配置？\n\n公司：边锋、老虎、脉脉、掌门一对一、喜马拉雅、寺库、腾讯应用宝、快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/178)\n\n<br/>\n\n### 说一下加密握手的过程\n\n公司：边锋、老虎\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/177)\n\n<br/>\n\n### 对称加密和非对称加密的区别和用处\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/176)\n\n<br/>\n\n### 是否用过 restful 接口，和其他风格的有什么区别\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/175)\n\n<br/>\n\n### 说一下 get、post、put 的区别\n\n公司：边锋、虎扑、酷家乐、酷狗、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/174)\n\n<br/>\n\n### 说一下对面向对象的理解，面向对象有什么好处\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/173)\n\n<br/>\n\n### 类设计：使用面相对象设计一个停车场管理系\n\n```js\n/*\n *题目要求\n *使用面相对象设计一个停车场管理系统，该停车场包含：\n *\t1.停车位，用于停放车辆；\n *\t2.停车位提示牌，用于展示剩余停车位；\n *可以丰富该系统的元素，给出类，类属性，类接口。\n */\n```\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/171)\n\n<br/>\n\n### 实现输出一个十六进制的随机颜色(#af0128a)\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/170)\n\n<br/>\n\n### justify-content:space-between around 有什么区别\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/169)\n\n<br/>\n\n### 手写代码实现`kuai-shou-front-end=>KuaiShouFrontEnd`\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/168)\n\n<br/>\n\n### 浏览器都有哪些进程，渲染进程中都有什么线程\n\n公司：老虎\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/167)\n\n<br/>\n\n### 说说浏览器渲染流程，分层之后在什么时候合成，什么是重排、重绘，怎样避免\n\n公司：老虎\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/166)\n\n<br/>\n\n### 什么是同源策略？什么是跨域？都有哪些方式会造成跨域？解决跨域都有什么手段？\n\n公司：阿里、滴滴、老虎、完美世界、沪江、喜马拉雅、兑吧、寺库、玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/165)\n\n<br/>\n\n### 什么是 CORS，CORS 需要前端配置还是后端配置？\n\n公司：酷狗\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/164)\n\n<br/>\n\n### 设计一个 Student 组件，实现输入姓名性别成绩（这三个必填），还有几个不是必填的属性，要设置默认值，点击弹出成绩\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/163)\n\n<br/>\n\n### 设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/162)\n\n<br/>\n\n### 实现 Promise.then\n\n公司：高德、百分点\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/161)\n\n<br/>\n\n### 平时在项目开发中都做过哪些前端性能优化\n\n公司：阿里、顺丰、易车、有赞、挖财、喜马拉雅、兑吧、寺库、海康威视、道一云、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/160)\n\n<br/>\n\n### 给定起止日期，返回中间的所有月份\n\n```js\n// 输入两个字符串 2018-08  2018-12\n// 输出他们中间的月份 [2018-9,2018-10, 2018-11]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/159)\n\n<br/>\n\n### 按要求实现代码\n\n```js\n// 给两个数组 [A1,A2,B1,B2,C1,C2,D1,D2] [A,B,C,D]\n// 输出 [A1,A2,A,B1,B2,B,C1,C2,C,D1,D2,D]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/158)\n\n<br/>\n\n### 实现一个将 52 张牌随机均等的分给四个人，比如输入 [0,1,2,3....51] ，输出[[1,2,16...],[4,3,6..],[....],[....]]\n\n公司：顺丰\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/157)\n\n<br/>\n\n### 用尽量短的代码实现一个 arrary 的链式操作，将数组中的大于 10 的值进行一个累加\n\n公司：顺丰\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/156)\n\n<br/>\n\n### 简单封装一个异步 fecth，使用 async await 的方式来使用\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/155)\n\n<br/>\n\n### 怎么理解 to B 和 to C 的业务\n\n公司：顺丰\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/154)\n\n<br/>\n\n### 如果有一个项目，随着业务的增长越来越大，怎么办，如何来进行一个拆分或者处理\n\n公司：顺丰\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/153)\n\n<br/>\n\n### 请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值\n\n```js\nvar obj = {\n  a: \"12\",\n  b: \"23\",\n  first: {\n    c: \"34\",\n    d: \"45\",\n    second: { 3: \"56\", f: \"67\", three: { g: \"78\", h: \"89\", i: \"90\" } },\n  },\n};\n// => [a,b,c,d,e,f,g,h,i]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/152)\n\n<br/>\n\n### 使用 Css 实现一个水波纹效果\n\n参考：[第二屏中的水波纹效果](https://mp.toutiao.com/auth/page/login/?redirect_url=JTJG#/?_k=1hjyly)\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/151)\n\n<br/>\n\n### position 定位都有什么属性（不仅仅是绝对定位和相对定位/fix 定位）\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/150)\n\n<br/>\n\n### 写出打印结果，并解释为什么\n\n```js\nvar a = { k1: 1 };\nvar b = a;\na.k3 = a = { k2: 2 };\nconsole.log(a); // ?\nconsole.log(b); // ?\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/149)\n\n<br/>\n\n### 动手实现一个 repeat 方法\n\n```js\nfunction repeat(func, times, wait) {\n  // TODO\n}\nconst repeatFunc = repeat(alert, 4, 3000);\n// 调用这个 repeatFunc (\"hellworld\")，会alert4次 helloworld, 每次间隔3秒\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/148)\n\n<br/>\n\n### setTimeout 有什么缺点，和 requestAnimationFrame 有什么区别\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/147)\n\n<br/>\n\n### versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数\n\n```js\nvar versions = [\"1.45.0\", \"1.5\", \"6\", \"3.3.3.3.3.3.3\"];\n// 要求从小到大排序，注意'1.45'比'1.5'大\nfunction sortVersion(versions) {\n  // TODO\n}\n// => ['1.5','1.45.0','3.3.3.3.3.3','6']\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/146)\n\n<br/>\n\n### 怎样用 css 实现一个弹幕的效果，动手实现一下\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/145)\n\n<br/>\n\n### 实现一个多并发的请求\n\n```js\nlet urls = ['http://dcdapp.com', …];\n/*\n\t*实现一个方法，比如每次并发的执行三个请求，如果超时（timeout）就输入null，直到全部请求完\n\t*batchGet(urls, batchnum=3, timeout=3000);\n\t*urls是一个请求的数组，每一项是一个url\n\t*最后按照输入的顺序返回结果数组[]\n*/\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/144)\n\n<br/>\n\n### 说一下 Css 预处理器，Less 带来的好处？\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/143)\n\n<br/>\n\n### 写出代码执行结果\n\n```js\nasync function async1() {\n  console.log(\"async1 start\");\n  await async2();\n  console.log(\"async1 end\");\n}\nasync function async2() {\n  console.log(\"async2\");\n}\nconsole.log(\"script start\");\nsetTimeout(function () {\n  console.log(\"setTimeout\");\n}, 0);\nasync1();\nnew Promise(function (resolve) {\n  console.log(\"promise1\");\n  resolve();\n}).then(function () {\n  console.log(\"promise2\");\n});\nconsole.log(\"scripts end\");\n// 写出代码执行完成打印的结果\n```\n\n公司：头条、网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/142)\n\n<br/>\n\n### 按要求实现一个 sum 函数\n\n```js\nconst a = sum(0); // => a === 0\nconst b = sum(1)(2); // => b === 3\nconst c = sum(4)(5); // c === 9\nconst k = sum(n1)...(nk) // k === n1 + n2 + ... + nk\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/141)\n\n<br/>\n\n### 按要求实现 rightView 函数\n\n```js\nfunction TreeNode(val){\n  this.val = val;\n  this.left = null;\n  this.right = null; \n}\nfunction rightView(root){\n  // 请你实现\n}\n// => [1,4,3]\n     1       => 1\n   2   4     => 4\n 7   3       => 3\n```\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/140)\n\n<br/>\n\n### meta 元素都有什么\n\n公司：完美世界\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/364)\n\n<br/>\n\n### Css 选择器都有什么，权重是怎么计算的\n\n公司：完美世界\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/363)\n\n<br/>\n\n### 布局都有什么方式，float 和 position 有什么区别\n\n公司：完美世界\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/362)\n\n<br/>\n\n### Http1 和 Http2 有什么区别，和 http1.1 相比，http2 都有什么特性\n\n公司：完美世界、网易、脉脉、高思教育\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/361)\n\n<br/>\n\n### Import 和 CommonJS 在 webpack 打包过程中有什么不同\n\n公司：完美世界\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/360)\n\n<br/>\n\n### 说一下 base64 的编码方式\n\n公司：完美世界\n\n分类：JavaScirpt\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/359)\n\n<br/>\n\n### 说一下单向数据流有什么好处\n\n公司：完美世界、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/358)\n\n<br/>\n\n### `nth-child`和`nth-of-type` 有什么区别\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/357)\n\n<br/>\n\n### `<img>`是什么元素\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/356)\n\n<br/>\n\n### flex 布局，如何实现把八个元素分两行摆放\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/355)\n\n<br/>\n\n### 改变 this 指向的方式都有哪些？\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/354)\n\n<br/>\n\n### 说一下 etag 和 lastmodify 的区别\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/353)\n\n<br/>\n\n### 强缓存都有哪些方法来控制\n\n公司：网易、易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/352)\n\n<br/>\n\n### 协商缓存都有哪些参数\n\n公司：网易、易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/351)\n\n<br/>\n\n### 说一下`module.exports`和`exports`的区别，`export`和`export default`的区别\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/350)\n\n<br/>\n\n### 说一下 webpack 中 css-loader 和 style-loader 的区别，file-loader 和 url-loader 的区别\n\n公司：网易\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/349)\n\n<br/>\n\n### number 为什么会出现精度损失，怎样避免\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/348)\n\n<br/>\n\n### 说一下对 React 和 Vue 的理解，它们的异同\n\n公司：网易、脉脉、快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/347)\n\n<br/>\n\n### 二叉树序列化反序列化\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/346)\n\n<br/>\n\n### 输入一个数字，找到对应的字母\n\n```js\n/*\n\t如输入1 返回a\n\t输入26返回z\n\t输入27返回aa\n\t输入28返回ab\n\t输入53返回aaa\n*/\n```\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/345)\n\n<br/>\n\n### Given an int n, output Mausoleum Array solutions.\n\n```js\n// Given an int n, output Mausoleum Array solutions.\n// Mausoleum Array:\n// Construct by 1,1,2,2,3,3,…,n-1,n-1,n,n\n// first were non-decreasing (i.e., increasing or remained the same), and then — non-increasing (decrease or remained unchanged).\n// Mausoleum Array example:\n// [1, 2, 2, 3, 4, 4, 3, 1];\n// [1, 1];\n// [2, 2, 1, 1];\n// [1, 2, 3, 3, 2, 1].\n// input/output example:\n// n=1, [1,1]\n// n=2, [1,1,2,2],[1,2,2,1],[2,2,1,1]\n// n = 3,[3, 3, 2, 2, 1, 1],[2, 3, 3, 2, 1, 1],[2, 2, 3, 3, 1, 1],[1, 3, 3, 2, 2, 1],[1, 2, 3, 3, 2, 1],[1, 2, 2, 3, 3, 1],[1, 1, 3, 3, 2, 2],[1, 1, 2, 3, 3, 2],[1, 1, 2, 2, 3, 3]\n```\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/344)\n\n<br/>\n\n### 实现一个函数将中文数字转成数字\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/343)\n\n<br/>\n\n### 节流\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/342)\n\n<br/>\n\n### 请求是异步的为什么会造成阻塞\n\n公司：易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/341)\n\n<br/>\n\n### 脚手架具体都做了哪些事，webpack 具体做了什么配置，怎样优化的打包大小\n\n公司：易车\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/340)\n\n<br/>\n\n### 介绍下 Webpack 的整个生命周期\n\n公司：滴滴、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/339)\n\n<br/>\n\n### 如何实现 5 秒自动刷新一次页面(具体都有什么方法 reload 之类的)\n\n公司：易车\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/338)\n\n<br/>\n\n### 都了解哪些 ES6、ES7 的新特性，箭头函数可以被 new 吗\n\n公司：易车、脉脉、虎扑、喜马拉雅、百分点、海风教育、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/337)\n\n<br/>\n\n### 说一下 JavaScript 继承都有哪些方法\n\n公司：易车、脉脉、微医、海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/336)\n\n<br/>\n\n### Css 方式实现一个不知道宽高的 div 居中都有哪几种方法\n\n公司：阿里、滴滴、易车、新东方、虎扑、饿了么、爱范儿、心娱、58\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/335)\n\n<br/>\n\n### 给一个字符串比如'abca'，返回第一个不重复的字母\n\n公司：易车\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/334)\n\n<br/>\n\n### 已知函数 A，要求构造⼀个函数 B 继承 A\n\n```js\nfunction A(name) {\n  this.name = name;\n}\nA.prototype.getName = function () {\n  console.log(this.name);\n};\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/333)\n\n<br/>\n\n### 数组和对象转换为字符串结果\n\n```js\nvar arry = [];\nvar obj = {};\n// arry,obj 转成字符串的结果是什么？\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/332)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nvar a = {\n  name: \"A\",\n  fn() {\n    console.log(this.name);\n  },\n};\na.fn();\na.fn.call({ name: \"B\" });\nvar fn1 = a.fn;\nfn1();\n// 写出打印结果\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/331)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nlet int = 1;\nsetTimeout(function () {\n  console.log(int);\n  int = 2;\n  new Promise((resolve, reject) => {\n    resolve();\n  }).then(function () {\n    console.log(int);\n    int = 7;\n  });\n  console.log(int);\n});\nint = 3;\nconsole.log(int);\nnew Promise((resolve, reject) => {\n  console.log(int);\n  return resolve((int = 4));\n}).then(function (res) {\n  console.log(int);\n  int = 5;\n  setTimeout(function () {\n    console.log(int);\n    int = 8;\n  });\n  return false;\n});\nconsole.log(int);\n// 写出打印结果\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/330)\n\n<br/>\n\n### 要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName\n\n```js\n/*\n\t已知对象A = {name: 'sfd', getName: function(){console.log(this.name)}},\n\t现要求⽤不同⽅式对A进⾏改造实现A.name发⽣变化时⽴即执⾏A.getName\n*/\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/329)\n\n<br/>\n\n### 修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）\n\n```js\nvar arrys = [];\nfor (var i = 0; i < 10; i++) {\n  arrys.push(function () {\n    return i;\n  });\n}\narrys.forEach(function (fn) {\n  console.log(fn());\n}); //本⾏不能修改\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/328)\n\n<br/>\n\n### 给定⼀个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效.\n\n```js\n/*\n  有效字符串需满⾜：\n \t \t1. 左括号必须⽤相同类型的右括号闭合。\n  \t2. 左括号必须以正确的顺序闭合。\n  注意空字符串可被认为是有效字符串。\n  示例1：\n  \t输⼊: \"()\"\n  \t输出: true\n  示例2：\n  \t输⼊: \"()[]{}\"\n  \t输出: true\n  示例 3:\n  \t输⼊: \"(]\"\n  \t输出: false\n  示例 4:\n  \t输⼊: \"([)]\"\n  \t输出: false\n  示例 5:\n  \t输⼊: \"{[]}\"\n  \t输出: true\n*/\n```\n\n公司：新东方\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/327)\n\n<br/>\n\n### CDN 有哪些优化静态资源加载速度的机制\n\n公司：头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/326)\n\n<br/>\n\n### 请给出识别 Email 的正则表达式\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/325)\n\n<br/>\n\n### 设计 AutoComplete 组件(又叫搜索组件、自动补全组件等)时，需要考虑什么问题？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/324)\n\n<br/>\n\n### 实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和\n\n```js\nclass TreeNode{\n  value:number\n  left?:TreeNode\n  right?:TreeNode\n}\nfunction getPathSum(root){\n  // your code\n}\n// 例子，一层二叉树如下定义，路径包括1 —> 2 ,1 -> 3\nconst node = new TreeNode();\nnode.value = 1;\nnode.left = new TreeNode();\nnode.left.value = 2;\nnode.right = new TreeNode();\nnode.right.value = 3;\ngetPathSum(node); // return 7 = (1+2) + (1+3)\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/323)\n\n<br/>\n\n### Webpack如何用 localStorage 离线缓存静态资源\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/322)\n\n<br/>\n\n### 手动实现一个函数，给定一个数组[1,0,2,3,4,-1,-3]，输出任意两个值和为 0 的下标\n\n公司：滴滴\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/321)\n\n<br/>\n\n### 请写出一下代码的打印结果\n\n```js\nfunction a(obj) {\n  obj.a = 2;\n  obj = { a: 3 };\n  return obj;\n}\nconst obj = { a: 1 };\na(obj);\nconsole.log(obj);\n```\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/324)\n\n<br/>\n\n### Promise 链式调用如何实现\n\n公司：滴滴\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/319)\n\n<br/>\n\n### 说一下对`BigInt`的理解，在什么场景下会使用\n\n公司：滴滴、高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/318)\n\n<br/>\n\n### null 是不是一个对象，如果是，如何判断一个对象是 null，不使用 JavaScript 提供的 api 如何进行判断\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/317)\n\n<br/>\n\n### gitlab 分支管理，线上如果发生 bug 怎么解决？\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/316)\n\n<br/>\n\n### 说一下对于堆栈的理解\n\n公司：滴滴、高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/315)\n\n<br/>\n\n### 介绍排序算法和快排原理\n\n公司：寺库、百分点\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/314)\n\n<br/>\n\n### `[] == ![]`为什么\n\n公司：高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/313)\n\n<br/>\n\n### 说一下 React.Component 和 React.PureComponent 的区别\n\n公司：高德、有赞、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/312)\n\n<br/>\n\n### 说一下对 React Hook 的理解，它的实现原理，和生命周期有哪些区别？\n\n公司：高德\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/311)\n\n<br/>\n\n### 如何把真实 dom 转变为虚拟 dom，代码实现一下\n\n公司：高德\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/310)\n\n<br/>\n\n### 说一下错误监控的实现，错误监控的正确使用方式，日志如何分等级\n\n公司：高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/309)\n\n<br/>\n\n### 说一下 Vue3 与 Vue2 的对比\n\n公司：高德\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/302)\n\n<br/>\n\n### vue 对数组的方法做了重写的操作，如何实现对 vue2 中对数组操作的 push()方法\n\n公司：高德\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/307)\n\n<br/>\n\n### 手动实现一个 Promisify 函数\n\n公司：高德\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/306)\n\n<br/>\n\n### 说一下 React 有状态组件与无状态组件区别，以及为什么要用，它的优缺点\n\n公司：高德\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/305)\n\n<br/>\n\n### 说一下 Nginx 的缓存策略，强缓存与弱缓存的区别，二者的使用场景\n\n公司：高德\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/304)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nvar a = { x: 1 };\nvar b = a;\na.x = a = { n: 1 };\nconsole.log(a); // ?\nconsole.log(b); // ?\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/303)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nFunction.prototype.a = () = >{alert(1)}\nObject.prototype.b = () = >{alert(2)}\nfunction A(){};\nconst a = new A();\na.a();\na.b();\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/302)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nlet a = 0;\nconsole.log(a);\nconsole.log(b);\nlet b = 0;\nconsole.log(c);\nfunction c() {}\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/301)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nvar x = 10;\nfunction a(y) {\n  var x = 20;\n  return b(y);\n}\nfunction b(y) {\n  return x + y;\n}\na(20);\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/300)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nconsole.log(1);\nsetTimeout(() => {\n  console.log(2);\n});\nprocess.nextTick(() => {\n  console.log(3);\n});\nsetImmediate(() => {\n  console.log(4);\n});\nnew Promise((resolve) => {\n  console.log(5);\n  resolve();\n  console.log(6);\n}).then(() => {\n  console.log(7);\n});\nPromise.resolve().then(() => {\n  console.log(8);\n  process.nextTick(() => {\n    console.log(9);\n  });\n});\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/299)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\n[1, 2, 3, 4, 5].map(parseInt);\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/298)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\ntypeof typeof typeof [];\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/297)\n\n<br/>\n\n### 以下 css 最后是什么颜色\n\n```html\n<style>\n  div {\n    color: red;\n  }\n  #title {\n    color: yellow;\n  }\n  div.title {\n    color: bule;\n  }\n</style>\n<div class=\"title\" id=\"title\">abc</div>\n```\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/296)\n\n<br/>\n\n### 说一下什么是死锁\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/295)\n\n<br/>\n\n### 实现以下代码\n\n```js\nfunction add() {\n  // your code\n}\nfunction one() {\n  // your code\n}\nfunction two() {\n  // your code\n}\nconsole.log(add(one(two()))); //3\nconsole.log(add(two(one()))); //3\n```\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/294)\n\n<br/>\n\n### 请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/293)\n\n<br/>\n\n### 实现一个函数柯里化\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/292)\n\n<br/>\n\n### 一个人每次只能走一层楼梯或者两层楼梯，问走到第 80 层楼梯一共有多少种方法\n\n公司：快手\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/291)\n\n<br/>\n\n### 简述 Vue 的基本原理\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/290)\n\n<br/>\n\n### 简述 Vue 的生命周期以及每个阶段做的事\n\n公司：脉脉、58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/289)\n\n<br/>\n\n### 说一下 Vue 组件的通信方式都有哪些？(父子组件，兄弟组件，多级嵌套组件等等)\n\n公司：脉脉、58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/288)\n\n<br/>\n\n### 说一下 Vuex 的原理以及自己的理解\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/287)\n\n<br/>\n\n### Vue v-model 是如何实现的，语法糖实际是什么\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/286)\n\n<br/>\n\n### 说一下对 React context 的理解\n\n公司：脉脉、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/285)\n\n<br/>\n\n### 说一下对 React-redux 的理解以及它的原理，主要解决什么问题\n\n公司：阿里、脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/284)\n\n<br/>\n\n### 说一下 Redux 的原理，介绍下整体的一个工作流程\n\n公司：脉脉、兑吧、寺库、蘑菇街、百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/283)\n\n<br/>\n\n### React 如何避免 renderd 的触发\n\n公司：脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/282)\n\n<br/>\n\n### 说一下 Vue dom diff 算法\n\n公司：网易\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/281)\n\n<br/>\n\n### 说一下对 vnode 的理解，vnode 的引入与直接操作原生 dom 相比，哪一个相率更高，为什么\n\n公司：脉脉、菜鸟网络、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/280)\n\n<br/>\n\n### 说一下对原型链的理解，画一个经典的原型链图示\n\n公司：脉脉、兑吧、快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/279)\n\n<br/>\n\n### 简述 Grid 布局\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/278)\n\n<br/>\n\n### 说一下 ajax/axios/fetch 的区别\n\n公司：脉脉\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/277)\n\n<br/>\n\n### 用 Promise 封装一个 ajax\n\n公司：脉脉\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/276)\n\n<br/>\n\n### 动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)\n\n公司：自如、头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/275)\n\n<br/>\n\n### 请描述 CSRF、XSS 的基本概念、攻击原理和防御措施？\n\n公司：自如、挖财、腾讯应用宝、沪江、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/274)\n\n<br/>\n\n### 请描述提升页面性能的方式有哪些，如何进行首页加载优化\n\n公司：自如\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/273)\n\n<br/>\n\n### 描述 DOM 事件捕获的具体流程\n\n公司：自如\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/272)\n\n<br/>\n\n### Http 报文的请求会有几个部分？请写出 HTTP 报文的组成部分\n\n公司：自如、滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/271)\n\n<br/>\n\n### 301，302，304 的区别\n\n公司：自如\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/270)\n\n<br/>\n\n### 请实现`$on,$emit`\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/269)\n\n<br/>\n\n### 实现 bind 方法，不能使用 call、apply、bind\n\n公司：自如、腾讯应用宝、快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/268)\n\n<br/>\n\n### 手写实现 sleep 函数\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/267)\n\n<br/>\n\n### 介绍一下 node 核心模块（主要是 stream）\n\n公司：自如、菜鸟网络\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/266)\n\n<br/>\n\n### 说一下 webpack 与 gulp 的区别（源码角度）\n\n公司：自如\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/265)\n\n<br/>\n\n### 请写出原生 js 如何设置元素高度\n\n公司：自如\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/264)\n\n<br/>\n\n### 说一下 Vue 的\\$nextTick 原理\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/263)\n\n<br/>\n\n### 说一下 vue-router 的原理\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/262)\n\n<br/>\n\n### node 如何做错误监控（运行时与其他）如何生成日志，日志等级\n\n公司：自如\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/261)\n\n<br/>\n\n### Node 的适用场景以及优缺点是什么？\n\n公司：道一云\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/260)\n\n<br/>\n\n### Vue 是如何收集依赖的\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/259)\n\n<br/>\n\n### 用原生 js 实现自定义事件\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/258)\n\n<br/>\n\n### 如何识别出字符串中的回车并进行换行？\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/257)\n\n<br/>\n\n### 屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/256)\n\n<br/>\n\n### 输入一个日期 返回几秒前、几小时前、几天前、几月前\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/255)\n\n<br/>\n\n### 将 153812.7 转化为 153,812.7\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/244)\n\n<br/>\n\n### 给定一个数组，形如 [1, 1, 2 , 3, 3, 3, 3, 4, 6, 6]，给定一个数 n，例如 3，找出给定的数 n 在数组内出现的次数，要求时间复杂度小于 O(n)\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/243)\n\n<br/>\n\n### 说一下 https 获取加密秘钥的过程\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/414)\n\n<br/>\n\n### Css 画一个三角形\n\n公司：会小二、高思教育、58\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/413)\n\n<br/>\n\n### 说一下 Vue 单页与多页的区别\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/412)\n\n<br/>\n\n### 说一下 Vue 路由实现原理\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/411)\n\n<br/>\n\n### 数组有哪些方法 讲讲区别跟使用场景\n\n公司：掌门一对一\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/410)\n\n<br/>\n\n### localstorage、sessionStorage、indexDB 和 cookie 的区别\n\n公司：掌门一对一、滴滴、兑吧、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/409)\n\n<br/>\n\n### 讲一下函数式编程\n\n公司：掌门一对一\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/408)\n\n<br/>\n\n### promise 跟 async await 的区别，使用场景 \n\n公司：网易、虎扑、沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/407)\n\n<br/>\n\n### async、await 如何进行错误捕获\n\n公司：虎扑\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/406)\n\n<br/>\n\n### Css 超出省略怎么写，三行超出省略怎么写\n\n公司：虎扑\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/405)\n\n<br/>\n\n### Css inherit、initial、unset 三者的区别\n\n公司：虎扑\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/404)\n\n<br/>\n\n### 介绍下 Flex 布局，属性都有哪些，都是干啥的\n\n公司：阿里、虎扑、快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/403)\n\n<br/>\n\n### 点击一个按钮，浏览器会做些什么\n\n公司：虎扑\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/402)\n\n<br/>\n\n### script 的 async 跟 defer 的区别？\n\n公司：虎扑\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/401)\n\n<br/>\n\n### React15/16.x 的区别\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/400)\n\n<br/>\n\n### weak-Set、weak-Map 和 Set、Map 区别\n\n公司：虎扑\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/399)\n\n<br/>\n\n### mvvm 模型和 mvc 模型区别\n\n公司：虎扑\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/398)\n\n<br/>\n\n### 如何实现一个 mvvm 模型\n\n公司：虎扑\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/397)\n\n<br/>\n\n### Vue3.0 为什么要用 proxy？是怎么用 proxy 实现数据监听的?\n\n公司：虎扑、CVTE\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/396)\n\n<br/>\n\n### valueOf 与 toString 的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/395)\n\n<br/>\n\n### TCP 三次握手\n\n公司：菜鸟网络、头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/394)\n\n<br/>\n\n### koa2 和 express 区别\n\n公司：菜鸟网络、海风教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/393)\n\n<br/>\n\n### 怎么判断是一个空对象\n\n公司：菜鸟网络\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/392)\n\n<br/>\n\n### 请写出下面代码的执行结果\n\n```js\nsetTimeout(() => {\n  console.log(0);\n}, 0);\nnew Promise((res) => setTimeout(res, 0)).then(() => {\n  console.log(1);\n  setTimeout(() => {\n    console.log(2);\n  }, 0);\n  new Promise((r = r())).then(() => {\n    console.log(3);\n  });\n});\nsetTimeout(() => {\n  console.log(4);\n}, 0);\nnew Promise((res) => res()).then(() => {\n  console.log(5);\n});\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/391)\n\n<br/>\n\n### 请写出下面代码的执行结果\n\n```js\nfunction Foo() {\n  getName = function () {\n    alert(1);\n  };\n  return this;\n}\ngetName();\nFoo.getName = function () {\n  alert(2);\n};\nFoo.prototype.getName = function () {\n  alert(3);\n};\ngetName = function () {\n  alert(4);\n};\n\n// 请写出下面的输出结果\ngetName();\nFoo.getName();\nnew Foo().getName();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/390)\n\n<br/>\n\n### 现在有随机整数数组，例如[2,11,20,160,3,1...]，请挑出数组内，三个随机整数和为 100 的所有数据。\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/388)\n\n<br/>\n\n### 请只用数组方法和 Math.random()在一条语句的情况下，实现生成给定位数的随机数组，例如生成 10 位随机数组[1.1,102.1,2,3,8,4,90,123,11,123],数组内数字随机生成。\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/387)\n\n<br/>\n\n### 实现一个 setter 方法\n\n```js\nlet setter = function (conten, key, value) {\n  // your code\n};\nlet n = {\n  a: {\n    b: {\n      c: { d: 1 },\n      bx: { y: 1 },\n    },\n    ax: { y: 1 },\n  },\n};\n// 修改值\nsetter(n, \"a.b.c.d\", 3);\nconsole.log(n.a.b.c.d); //3\nsetter(n, \"a.b.bx\", 1);\nconsole.log(n.b.bx); //1\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/386)\n\n<br/>\n\n### LocalStorage 加密原理\n\n公司：腾讯应用宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/385)\n\n<br/>\n\n### setTimeout 与 setInterval 区别\n\n公司：腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/384)\n\n<br/>\n\n### 说一下常见的状态码\n\n公司：腾讯应用宝、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/383)\n\n<br/>\n\n### 项目中如何应用数据结构\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/382)\n\n<br/>\n\n### 304 页面的原理\n\n公司：腾讯应用宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/381)\n\n<br/>\n\n### RN、Weex、Dart 的优缺点\n\n公司：腾讯应用宝、寺库\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/380)\n\n<br/>\n\n### 知道语义化吗？说说你理解的语义化，如果是你，平时会怎么做来保证语义化？说说你了解的 HTML5 语义化标签？\n\n公司：蘑菇街\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/379)\n\n<br/>\n\n### 闭包的核心是什么\n\n公司：寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/378)\n\n<br/>\n\n### 响应式布局用到的技术，移动端需要注意什么\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/377)\n\n<br/>\n\n### 写出代码输出结果\n\n```js\nvar fullname = \"Test1\";\nvar obj = {\n  fullname: \"Test2\",\n  prop: {\n    fullname: \"Test3\",\n    getFullname: function () {\n      return this.fullname;\n    },\n  },\n};\nconsole.log(obj.prop.getFullname());\nvar test = obj.prop.getFullname;\nconsole.log(test());\n```\n\n公司：心娱、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/376)\n\n<br/>\n\n### 实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/375)\n\n<br/>\n\n### 什么是作用域链\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/374)\n\n<br/>\n\n### 介绍事件冒泡、事件代理、事件捕获，以及它们的关系\n\n公司：腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/373)\n\n<br/>\n\n### for..of 和 for...in 是否可以直接遍历对象，为什么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/372)\n\n<br/>\n\n### 在 map 中和 for 中调用异步函数的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/371)\n\n<br/>\n\n### gennerator yield 的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/370)\n\n<br/>\n\n### promise 的状态有哪些\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/369)\n\n<br/>\n\n### 在 ES6 中有哪些解决异步的方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/368)\n\n<br/>\n\n### es6 类继承中 super 的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/367)\n\n<br/>\n\n### cros 的简单请求和复杂请求的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/366)\n\n<br/>\n\n### 统计一组整形数组的最大差值？\n\n公司：心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/365)\n\n<br/>\n\n### addEventListener 的第三个参数的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/592)\n\n<br/>\n\n### 上传文件的 Content_Type 什么，node 如何拿到上传的文件内容(不适用第三方插件)？文件内容是一次行传输过去的么\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/591)\n\n<br/>\n\n### 获取 id 为 netease 节点下所有的 checkbox 子元素(不用框架，注意兼容)\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/590)\n\n<br/>\n\n### 使用原型链如何实现继承\n\n公司：腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/589)\n\n<br/>\n\n### 如何获取一个对象的深度\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/588)\n\n<br/>\n\n### reduce 函数的功能，如何实现的，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/587)\n\n<br/>\n\n### 说一下 splice 和 slice 的功能用法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/586)\n\n<br/>\n\n### 面向对象的三要素是啥？都是啥意思？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/585)\n\n<br/>\n\n### 函数中的 this 有几种\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/584)\n\n<br/>\n\n### 如何同时获取 html 中的 h1,h2,h3,h4,h5,h6 中的内容\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/583)\n\n<br/>\n\n### JavaScript 的执行流程\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/582)\n\n<br/>\n\n### Promise.resolve(obj)，obj 有几种可能\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/581)\n\n<br/>\n\n### 写出代码执行结果\n\n```js\nnew Promise((resolve, reject) => {\n  reject(\"1\");\n})\n  .catch((e) => {\n    console.log(1);\n  })\n  .then((res) => {\n    console.log(2);\n  });\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/580)\n\n<br/>\n\n### nextTick 是在本次循环执行，还是在下次，setTimeout(() => {}, 0)呢？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/579)\n\n<br/>\n\n### A、B 两个条件组件，如何做到 webpack 只打包条件为 true 的组件，false 的组件不打包\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/578)\n\n<br/>\n\n### 说一下对 vue3.0 的了解，vue3.0 为什么要用代理\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/577)\n\n<br/>\n\n### 子组件可以直接改变父组件的数据么，说明原因\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/576)\n\n<br/>\n\n### webpack 怎么处理内联 css 的\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/575)\n\n<br/>\n\n### webpack 如何做异步加载\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/574)\n\n<br/>\n\n### 客户端缓存有几种方式？浏览器出现 from disk、from memory 的策略是啥\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/573)\n\n<br/>\n\n### 什么是 http？什么是 http2？说下 http 与 http2 的工作流程\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/572)\n\n<br/>\n\n### 客户端如何发送 http 请求\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/571)\n\n<br/>\n\n### 使用正则去掉 Dom 中的内联样式\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/570)\n\n<br/>\n\n### 写一个匹配 ip 地址的正则\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/569)\n\n<br/>\n\n### 写一个匹配 Html 标签的正则\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/568)\n\n<br/>\n\n### 使用 typescript 的装饰器能否实现函数调用前出现加载动画，调用后关闭，如果能，这个加载动画的控制代码是放在哪种装饰器上呢\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/567)\n\n<br/>\n\n### unicode 和 utf8 的关系\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/566)\n\n<br/>\n\n### 介绍下 pm2，pm2 依据什么重启服务\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/565)\n\n<br/>\n\n### 什么是微服务，微服务跟单体应用的区别是啥，用微服务有啥好处？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/564)\n\n<br/>\n\n### IOC 是啥，应用场景是啥？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/563)\n\n<br/>\n\n### 是否了解 docker，介绍一下\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/562)\n\n<br/>\n\n### 写出代码执行的打印结果\n\n```js\nfunction a(obj) {\n  obj.a = 2;\n  obj = { a: 3 };\n  return obj;\n}\nconst obj = { a: 1 };\na(obj);\nconsole.log(obj);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/561)\n\n<br/>\n\n### 实现函数\n\n```js\nd1,,,\nd2,,,\nd3,,,\n\n把上边的字符串输出1，2，3的和 //6\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/560)\n\n<br/>\n\n### 使用过的 koa2 中间件，中间件的原理是什么？\n\n公司：阿里、宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/559)\n\n<br/>\n\n### koa-body 原理\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/558)\n\n<br/>\n\n### 有没有写过中间件，介绍下自己写过的中间件\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/557)\n\n<br/>\n\n### 有没有涉及到 Cluster，说一下你的理解\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/556)\n\n<br/>\n\n### master 挂了的话 pm2 怎么处理\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/555)\n\n<br/>\n\n### Node 如何和 MySQL 进行通信\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/554)\n\n<br/>\n\n### 如何配置 React-Router 实现路由切换\n\n公司：阿里、滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/553)\n\n<br/>\n\n### 服务端渲染 SSR\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/552)\n\n<br/>\n\n### 介绍 Redux 数据流的流程\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/551)\n\n<br/>\n\n### Redux 如何实现多个组件之间的通信，多个组件使用相同状态如何进行管理\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/550)\n\n<br/>\n\n### React 路由的动态加载模块，实现按需加载\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/549)\n\n<br/>\n\n### 多个组件之间如何拆分各自的 state，每块小的组件有自己的状态，它们之间还有一些公共的状态需要维护，这如何思考\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/548)\n\n<br/>\n\n### 使用过的 Redux 中间件\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/547)\n\n<br/>\n\n### redux 的设计思想\n\n公司：头条\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/546)\n\n<br/>\n\n### 移动端适配 1px 的问题\n\n公司：阿里\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/545)\n\n<br/>\n\n### 居中为什么要使用 transform（为什么不使用 marginLeft/marginTop）\n\n公司：阿里\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/544)\n\n<br/>\n\n### Webpack 里面的插件是怎么实现的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/543)\n\n<br/>\n\n### dev-server 是怎么跑起来的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/542)\n\n<br/>\n\n### Webpack 抽取公共文件是怎么配置的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/541)\n\n<br/>\n\n### 项目中如何处理安全问题\n\n公司：阿里、喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/540)\n\n<br/>\n\n### 怎么实现 this 对象的深拷贝\n\n公司：阿里\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/539)\n\n<br/>\n\n### 使用 canvas 绘图时如何组织成通用组件\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/538)\n\n<br/>\n\n### 表单可以跨域吗\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/537)\n\n<br/>\n\n### 搜索请求如何处理？搜索请求中文如何请求？\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/536)\n\n<br/>\n\n### 介绍观察者模式\n\n公司：网易、海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/535)\n\n<br/>\n\n### 介绍中介者模式\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/534)\n\n<br/>\n\n### 观察者和订阅-发布的区别，各自用在哪里\n\n公司：网易、有赞、微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/533)\n\n<br/>\n\n### 通过什么做到并发请求\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/532)\n\n<br/>\n\n### http1.1 时如何复用 tcp 连接\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/531)\n\n<br/>\n\n### 介绍 service worker\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/530)\n\n<br/>\n\n### 介绍 css3 中 position:sticky\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/529)\n\n<br/>\n\n### redux 请求中间件如何处理并发\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/528)\n\n<br/>\n\n### 介绍浏览器事件流向\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/527)\n\n<br/>\n\n### 介绍事件代理以及优缺点，主要解决什么问题\n\n公司：网易、沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/526)\n\n<br/>\n\n### React 组件中怎么做事件代理？它的原理是什么？\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/525)\n\n<br/>\n\n### 介绍下 this 的各种情况\n\n公司：网易、蘑菇街\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/524)\n\n<br/>\n\n### 前端如何控制管理路由\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/523)\n\n<br/>\n\n### 使用路由时出现问题如何解决\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/522)\n\n<br/>\n\n### React 怎么做数据的检查和变化\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/521)\n\n<br/>\n\n### react-router 里的 Link 标签和 a 标签有什么区别\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/520)\n\n<br/>\n\n### a 标签默认事件禁掉之后做了什么才实现了跳转\n\n公司：滴滴\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/519)\n\n<br/>\n\n### 整个前端性能提升大致分几类\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/518)\n\n<br/>\n\n### import { Button } from 'antd'，打包的时候只打包 button，分模块加载，是怎么做到的\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/517)\n\n<br/>\n\n### 使用 import 时，webpack 对 node_modules 里的依赖会做什么\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/516)\n\n<br/>\n\n### JavaScript 异步解决方案的发展历程以及优缺点\n\n公司：滴滴、挖财、宝宝树、海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/515)\n\n<br/>\n\n### cookie 放哪里，cookie 能做的事情和存在的价值\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/514)\n\n<br/>\n\n### cookie 和 token 都存放在 header 里面，为什么只劫持前者\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/513)\n\n<br/>\n\n### 以下 axios 的特点正确的有哪些？(多选题)\n\n```js\nA.axios 可以跨平台，支持 promise 的所有 API\nB.可以拦截请求和响应\nC.可以转换请求数据和响应数据，并对响应回来的内容自动转换为 json 类型的数据\nD.安全性更高，客户端支持防御 XSRF\n```\n\n公司：道一云\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/512)\n\n<br/>\n\n### React 中 Dom 结构发生变化后内部经历了哪些变化\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/511)\n\n<br/>\n\n### React 挂载的时候有 3 个组件，textComponent、composeComponent、domComponent，区别和关系，Dom 结构发生变化时怎么区分 data 的变化，怎么更新，更新怎么调度，如果更新的时候还有其他任务存在怎么处理\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/510)\n\n<br/>\n\n### React 子父组件之间如何传值\n\n公司：饿了么\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/509)\n\n<br/>\n\n### Redux 中间件是什么东西？接受几个参数？柯里化函数两端的参数具体是什么东西？\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/508)\n\n<br/>\n\n### Redux 中间件· 中间件是怎么拿到 store 和 action？然后怎么处理？\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/507)\n\n<br/>\n\n### state 是怎么注入到组件的，从 reducer 到组件经历了什么样的过程\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/506)\n\n<br/>\n\n### koa 中 response.send、response.rounded、response.json 发生了什么事，浏览器为什么能识别到它是一个 json 结构或是 html\n\n公司：滴滴\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/505)\n\n<br/>\n\n### koa-bodyparser 如何解析 request\n\n公司：滴滴\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/504)\n\n<br/>\n\n### 介绍 AST（Abstract Syntax Tree）抽象语法树\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/530)\n\n<br/>\n\n### 安卓 Activity 之间数据是怎么传递的\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/502)\n\n<br/>\n\n### 说下安卓系统中的 webview\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/501)\n\n<br/>\n\n### WebView 和原生是如何通信\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/500)\n\n<br/>\n\n### 对 async、await 的理解，内部原理是怎样的？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/499)\n\n<br/>\n\n### 清除浮动的方式\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/498)\n\n<br/>\n\n### 接入 Redux 过程？绑定 connect 的过程？connect 的原理\n\n公司：头条、宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/497)\n\n<br/>\n\n### == 和 ===的区别，什么情况下用相等==\n\n公司：头条、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/496)\n\n<br/>\n\n### bind、call、apply 的区别\n\n公司：头条、挖财、饿了么、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/495)\n\n<br/>\n\n### 介绍下原型链\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/494)\n\n<br/>\n\n### Linux 754 介绍\n\n公司：有赞\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/493)\n\n<br/>\n\n### 介绍冒泡排序、选择排序，说说冒泡排序如何优化\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/492)\n\n<br/>\n\n### transform 动画和直接使用 left、top 改变位置有什么优缺点\n\n公司：有赞、腾讯应用宝\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/491)\n\n<br/>\n\n### 如何判断链表是否有环\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/490)\n\n<br/>\n\n### 介绍二叉搜索树的特点\n\n公司：有赞\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/489)\n\n<br/>\n\n### 介绍暂时性死区\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/488)\n\n<br/>\n\n### ES6 中的 map 和原生的对象有什么区别\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/487)\n\n<br/>\n\n### RN 如何调用原生的一些功能、如何和原生进行通信\n\n公司：寺库、宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/486)\n\n<br/>\n\n### react 异步渲染的概念,介绍 Time Slicing 和 Suspense\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/485)\n\n<br/>\n\n### 16.X 中 props 改变后在哪个生命周期中处理\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/494)\n\n<br/>\n\n### 对纯函数的理解\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/483)\n\n<br/>\n\n### 介绍 JSX\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/482)\n\n<br/>\n\n### 如何做 RN 在安卓和 IOS 端的适配\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/481)\n\n<br/>\n\n### RN 为什么能在原生中绘制成原生组件\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/480)\n\n<br/>\n\n### 对虚拟 DOM 的理解？虚拟 DOM 主要做了什么？虚拟 DOM 本身是什么？\n\n公司：有赞、微医、58\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/479)\n\n<br/>\n\n### cookie 的引用为了解决什么问题\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/478)\n\n<br/>\n\n### 如何设计一个 localStorage，保证数据的时效性\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/477)\n\n<br/>\n\n### 介绍下 React 高阶组件，和普通组件有什么区别，适用什么场景\n\n公司：有赞、饿了么、喜马拉雅、乘法云\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/476)\n\n<br/>\n\n### 实现 sum 方法，使 sum(x)(y),sum(x,y)返回的结果相同\n\n公司：有赞、网易、乘法云\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/475)\n\n<br/>\n\n### 两个对象如何比较\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/474)\n\n<br/>\n\n### 说一下变量的作用域链\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/473)\n\n<br/>\n\n### 介绍 dom 树对比\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/472)\n\n<br/>\n\n### 如何设计状态树\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/471)\n\n<br/>\n\n### native 提供了什么能力给 RN\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/470)\n\n<br/>\n\n### 如何做工程上的优化\n\n公司：挖财\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/469)\n\n<br/>\n\n### shouldComponentUpdate 是为了解决什么问题\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/468)\n\n<br/>\n\n### 如何解决 props 层级过深的问题\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/467)\n\n<br/>\n\n### 前端怎么做单元测试\n\n公司：挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/466)\n\n<br/>\n\n### pm2 怎么做进程管理，进程挂掉怎么处理\n\n公司：挖财\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/465)\n\n<br/>\n\n### 不用 pm2 怎么做进程管理\n\n公司：挖财\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/464)\n\n<br/>\n\n### jsonp 方案需要服务端怎么配合\n\n公司：沪江\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/463)\n\n<br/>\n\n### Ajax 发生跨域要设置什么（前端）\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/462)\n\n<br/>\n\n### 加上 CORS 之后从发起到请求正式成功的过程\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/461)\n\n<br/>\n\n### Async 里面有多个 await 请求，可以怎么优化\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/460)\n\n<br/>\n\n### React 遇到性能问题一般在哪个生命周期里解决\n\n公司：沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/459)\n\n<br/>\n\n### Vue 中一次性 200 条弹幕怎么处理\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/458)\n\n<br/>\n\n### React/Redux 中哪些功能用到了哪些设计模式\n\n公司：沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/457)\n\n<br/>\n\n### JavaScript 变量类型分为几种，区别是什么\n\n公司：沪江、酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/456)\n\n<br/>\n\n### JavaScript 里垃圾回收机制是什么，常用的是哪种，怎么处理的\n\n公司：沪江、寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/455)\n\n<br/>\n\n### 一般怎么组织 CSS（Webpack）\n\n公司：沪江\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/454)\n\n<br/>\n\n### 一个对象数组，每个子对象包含一个 id 和 name，React 如何渲染出全部的 name？在哪个生命周期里写？其中有几个 name 不存在，通过异步接口获取，如何做？渲染的时候 key 给什么值？可以使用 index 吗？用 id 好还是 index 好？\n\n公司：饿了么\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/452)\n\n<br/>\n\n### webpack 如何配 sass，需要配哪些 loader，配 css 需要哪些 loader\n\n公司：饿了么\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/451)\n\n<br/>\n\n### 如何配置把 js、css、html 单独打包成一个文件\n\n公司：饿了么\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/450)\n\n<br/>\n\n### 上下固定，中间滚动布局如何实现\n\n公司：饿了么\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/449)\n\n<br/>\n\n### ES5 和 ES6 有什么区别\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/448)\n\n<br/>\n\n### 取数组的最大值（ES5、ES6）\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/447)\n\n<br/>\n\n### some、every、find、filter、map、forEach 有什么区别\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/446)\n\n<br/>\n\n### 页面上生成一万个 button，并且绑定事件，如何做（JS 原生操作 DOM）？循环绑定时的 index 是多少，为什么，怎么解决？\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/445)\n\n<br/>\n\n### 页面上有一个 input，还有一个 p 标签，改变 input 后 p 标签就跟着变化，如何处理？监听 input 的哪个事件，在什么时候触发？\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/444)\n\n<br/>\n\n### 手写数组去重函数(至少三种以上，说明时间复杂度)\n\n公司：携程、心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/443)\n\n<br/>\n\n### Promise 和 async/await，和 Callback 有什么区别\n\n公司：携程、海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/442)\n\n<br/>\n\n### componentWillReceiveProps 的触发条件是什么\n\n公司：喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/441)\n\n<br/>\n\n### Redux 怎么实现属性传递，介绍下原理\n\n公司：喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/440)\n\n<br/>\n\n### 网站 SEO 怎么处理\n\n公司：喜马拉雅\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/439)\n\n<br/>\n\n### 403、301、302 是什么\n\n公司：喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/438)\n\n<br/>\n\n### HTTPS 怎么建立安全通道，Https 的加密过程\n\n公司：喜马拉雅、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/437)\n\n<br/>\n\n### 项目中对于用户体验做过什么优化\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/436)\n\n<br/>\n\n### 介绍下数字签名的原理\n\n公司：喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/435)\n\n<br/>\n\n### 前后端通信使用什么方案\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/434)\n\n<br/>\n\n### RESTful 常用的 Method\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/433)\n\n<br/>\n\n### Access-Control-Allow-Origin 在服务端哪里配置\n\n公司：喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/432)\n\n<br/>\n\n### 前端和后端怎么联调\n\n公司：喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/431)\n\n<br/>\n\n### 如何实现高度自适应\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/430)\n\n<br/>\n\n### prototype 和proto区别\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/429)\n\n<br/>\n\n### new 的实现原理，动手实现一个 new\n\n公司：兑吧\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/428)\n\n<br/>\n\n### 如何实现 H5 手机端的适配\n\n公司：兑吧、网易、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/427)\n\n<br/>\n\n### em 和 px 的区别\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/426)\n\n<br/>\n\n### Redux 状态管理器和变量挂载到 window 中有什么区别\n\n公司：兑吧、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/425)\n\n<br/>\n\n### webpack 和 gulp 的优缺点\n\n公司：兑吧\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/424)\n\n<br/>\n\n### 如何去除 url 中的#号\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/423)\n\n<br/>\n\n### 如何实现分模块打包（多入口）\n\n公司：兑吧\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/422)\n\n<br/>\n\n### base64 为什么能提升性能，缺点\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/421)\n\n<br/>\n\n### 介绍 webp 这个图片文件格式\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/420)\n\n<br/>\n\n### 介绍 koa2，原理是什么？\n\n公司：兑吧、海风教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/419)\n\n<br/>\n\n### 异步请求，低版本 fetch 如何低版本适配\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/418)\n\n<br/>\n\n### ajax 如何处理跨域？CORSr 如何设置？\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/417)\n\n<br/>\n\n### jsonp 为什么不支持 post 方法\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/416)\n\n<br/>\n\n### 介绍 Immuable\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/415)\n\n<br/>\n\n### 介绍 JS 全部数据类型，基本数据类型和引用数据类型的区别\n\n公司：微医、玄武科技、快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/613)\n\n<br/>\n\n### Array 是 Object 类型吗\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/612)\n\n<br/>\n\n### 说一下栈和堆的区别，垃圾回收时栈和堆的区别\n\n公司：微医、寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/611)\n\n<br/>\n\n### 数组里面有 10 万个数据，取第一个元素和第 10 万个元素的时间相差多少\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/610)\n\n<br/>\n\n### Async/Await 怎么实现\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/609)\n\n<br/>\n\n### JavaScript 为什么要区分微任务和宏任务\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/608)\n\n<br/>\n\n### Promise 构造函数是同步还是异步执行，then 呢\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/607)\n\n<br/>\n\n### JavaScript 执行过程分为哪些阶段\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/605)\n\n<br/>\n\n### 词法作用域和 this 的区别\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/604)\n\n<br/>\n\n### loadsh 深拷贝实现原理\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/603)\n\n<br/>\n\n### ES6 中 let 块作用域是怎么实现的\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/602)\n\n<br/>\n\n### React 中 setState 后发生了什么？setState 为什么默认是异步？setState 什么时候是同步？\n\n公司：微医\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/601)\n\n<br/>\n\n### 为什么 3 大框架出现以后就出现很多 native（RN）框架（虚拟 DOM）\n\n公司：微医\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/600)\n\n<br/>\n\n### Webpack 打包时 Hash 码是怎么生成的？随机值存在一样的情况，如何避免？\n\n公司：微医\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/599)\n\n<br/>\n\n### Webpack 做了什么？使用 webpack 构建时有无做一些自定义操作？\n\n公司：微医\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/598)\n\n<br/>\n\n### node 接口转发有无做什么优化？node 起服务如何保证稳定性，平缓降级，重启等\n\n公司：微医\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/597)\n\n<br/>\n\n### RN 有没有做热加载？RN 遇到的兼容性问题？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/596)\n\n<br/>\n\n### RN 如何实现一个原生的组件？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/595)\n\n<br/>\n\n### RN 混原生和原生混 RN 有什么不同？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/594)\n\n<br/>\n\n### 介绍单页应用和多页应用？\n\n公司：寺库、海康威视\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/593)\n\n<br/>\n\n### RN 的原理，为什么可以同时在安卓和 IOS 端运行\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/782)\n\n<br/>\n\n### 介绍一下网络的五层模型\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/781)\n\n<br/>\n\n### 介绍 SSL 与 TLS\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/780)\n\n<br/>\n\n### formData 和原生的 ajax 有什么区别\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/779)\n\n<br/>\n\n### 介绍下表单提交，和 formData 有什么关系\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/778)\n\n<br/>\n\n### redux 和全局管理有什么区别\n\n公司：宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/777)\n\n<br/>\n\n### 介绍 MVP 怎么组织\n\n公司：宝宝树\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/776)\n\n<br/>\n\n### promise 如何实现 then 处理，动手实现 then\n\n公司：宝宝树\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/775)\n\n<br/>\n\n### 服务端怎么做统一的状态处理\n\n公司：宝宝树\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/774)\n\n<br/>\n\n### 如何对相对路径引用进行优化\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/773)\n\n<br/>\n\n### 介绍 node 文件查找优先级\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/772)\n\n<br/>\n\n### npm2 和 npm3+有什么区别\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/771)\n\n<br/>\n\n### 如何处理异常捕获\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/770)\n\n<br/>\n\n### 项目如何管理模块\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/769)\n\n<br/>\n\n### 尽可能多的写出判断数组的方法\n\n公司：海康威视、新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/768)\n\n<br/>\n\n### 介绍 localstorage 的 api\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/767)\n\n<br/>\n\n### html 标签 b 和 strong 的区别\n\n公司：蘑菇街\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/766)\n\n<br/>\n\n### 使用原型最大的好处\n\n公司：蘑菇街\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/765)\n\n<br/>\n\n### 介绍 React 设计思路，它的理念是什么？\n\n公司：蘑菇街、海风教育\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/764)\n\n<br/>\n\n### 单例、工厂、观察者项目中实际场景\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/763)\n\n<br/>\n\n### 添加原生事件不移除为什么会内存泄露，还有哪些地方会存在内存泄漏\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/762)\n\n<br/>\n\n### setInterval 需要注意的点\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/761)\n\n<br/>\n\n### 定时器为什么是不精确的\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/760)\n\n<br/>\n\n### setTimeout(1)和 setTimeout(2)之间的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/759)\n\n<br/>\n\n### 介绍宏任务和微任务\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/758)\n\n<br/>\n\n### promise 里面和 then 里面执行有什么区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/757)\n\n<br/>\n\n### props 和 state 的区别\n\n公司：酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/756)\n\n<br/>\n\n### 介绍 class 和 ES5 的类以及区别\n\n公司：酷家乐 \n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/755)\n\n<br/>\n\n### 介绍 defineProperty 方法，什么时候需要用到\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/754)\n\n<br/>\n\n### for..in 和 Object.keys 的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/753)\n\n<br/>\n\n### 使用闭包特权函数的使用场景\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/752)\n\n<br/>\n\n### 哪些方法会触发 react 重新渲染？重新渲染 render 会做些什么？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/751)\n\n<br/>\n\n### state 和 props 触发更新的生命周期分别有什么区别？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/750)\n\n<br/>\n\n### React setState 是同步还是异步？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/749)\n\n<br/>\n\n### 对无状态组件的理解\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/748)\n\n<br/>\n\n### 介绍箭头函数的 this\n\n公司：百分点\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/747)\n\n<br/>\n\n### 找到前 K 个最大的元素\n\n公司：百分点\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/746)\n\n<br/>\n\n### 对 React 的看法，它的优缺点，使用过程中遇到的问题，如何解决的\n\n公司：海风教育\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/744)\n\n<br/>\n\n### JavaScript 是什么范式语言\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/743)\n\n<br/>\n\n### Promise 有没有解决异步的问题\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/742)\n\n<br/>\n\n### Promise 和 setTimeout 的区别\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/741)\n\n<br/>\n\n### 进程和线程的区别\n\n公司：海风教育\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/740)\n\n<br/>\n\n### 介绍下 DFS 深度优先\n\n公司：海风教育\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/739)\n\n<br/>\n\n### 按照调用实例，实现下面的 Person 方法\n\n```js\nPerson(\"Li\");\n// 输出： Hi! This is Li!\n\nPerson(\"Dan\").sleep(10).eat(\"dinner\");\n// 输出：\n// Hi! This is Dan!\n// 等待10秒..\n// Wake up after 10\n// Eat dinner~\n\nPerson(\"Jerry\").eat(\"dinner\").eat(\"supper\");\n// 输出：\n// Hi This is Jerry!\n// Eat dinner~\n// Eat supper~\n\nPerson(\"Smith\").sleepFirst(5).eat(\"supper\");\n// 输出：\n// 等待5秒\n// Wake up after 5\n// Hi This is Smith!\n// Eat supper\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/738)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = {\n  bar: function () {\n    return this.baz;\n  },\n  baz: 1,\n};\n(function () {\n  console.log(typeof arguments[0]());\n})(yideng.bar);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/737)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction test() {\n  console.log(\"out\");\n}\n(function () {\n  if (false) {\n    function test() {\n      console.log(\"in\");\n    }\n    test();\n  }\n})();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/736)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar x = [typeof x, typeof y][1];\ntypeof x;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/735)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\n(function (x) {\n  delete x;\n  return x;\n})(1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/734)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar x = 1;\nif (function f() {}) {\n  x += typeof f;\n}\nx;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/733)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction f() {\n  return f;\n}\nnew f() instanceof f;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/732)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nObject.prototype.a = \"a\";\nFunction.prototype.a = \"a1\";\nfunction Person() {}\nvar yideng = new Person();\nconsole.log(yideng.a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/731)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = [0];\nif (yideng) {\n  console.log(yideng == true);\n} else {\n  console.log(\"yideng\");\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/730)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction yideng() {\n  return;\n  {\n    a: 1;\n  }\n}\nvar result = yideng();\nconsole.log(result.a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/729)\n\n<br/>\n\n### 按要求完成代码\n\n```js\nconst timeout = (ms) =>\n  new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve();\n    }, ms);\n  });\nconst ajax1 = () =>\n  timeout(2000).then(() => {\n    console.log(\"1\");\n    return 1;\n  });\nconst ajax2 = () =>\n  timeout(1000).then(() => {\n    console.log(\"2\");\n    return 2;\n  });\nconst ajax3 = () =>\n  timeout(2000).then(() => {\n    console.log(\"3\");\n    return 3;\n  });\nconst mergePromise = (ajaxArray) => {\n  // 1,2,3 done [1,2,3] 此处写代码 请写出ES6、ES3 2中解法\n};\nmergePromise([ajax1, ajax2, ajax3]).then((data) => {\n  console.log(\"done\");\n  console.log(data); // data 为[1,2,3]\n});\n// 执行结果为：1 2 3 done [1,2,3]\n```\n\n公司：阿里\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/728)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```html\n<script>\n  //使用未定义的变量yideng\n  yideng;\n  console.log(1);\n</script>\n<script>\n  console.log(2);\n</script>\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/727)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = Array(3);\nyideng[0] = 2;\nvar result = yideng.map(function (elem) {\n  return \"1\";\n});\nconsole.log(result);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/726)\n\n<br/>\n\n### 请修改代码能跳出死循环\n\n```js\nwhile (1) {\n  switch (\"yideng\") {\n    case \"yideng\":\n    //禁止直接写一句break\n  }\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/725)\n\n<br/>\n\n### 修改代码不造成死循环\n\n```js\nwhile(1){\n  console.log(Math.random());\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/911)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\n[1 < 2 < 3, 3 < 2 < 1];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/723)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\n2 == [[[2]]];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/722)\n\n<br/>\n\n### 计算以上字节每位 ✈️ 的起码点，并描述这些字节的起码点代表什么\n\n```js\nconsole.log(\"✈️\".length);\n// 1.计算以上字节每位✈️的起码点\n// 2.描述这些字节的起码点代表什么\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/721)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nvar yidenga = Function.length,\n  yidengb = new Function().length;\nconsole.log(yidenga === yidengb);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/720)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nvar length = 10;\nfunction fn() {\n  console.log(this.length);\n}\nvar yideng = {\n  length: 5,\n  method: function (fn) {\n    fn();\n    arguments[0]();\n  },\n};\nyideng.method(fn, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/719)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nvar yi = new Date(\"2018-08-20\"),\n  deng = new Date(2018, 08, 20);\n[yi.getDay() === deng.getDay(), yi.getMonth() === deng.getMonth()];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/718)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nfor (\n  let i = (setTimeout(() => console.log(\"a->\", i)), 0);\n  setTimeout(() => console.log(\"b->\", i)), i < 2;\n  i++\n) {\n  i++;\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/717)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\n[typeof null, null instanceof Object];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/716)\n\n<br/>\n\n### 请问当前 textarea 文本框展示的内容是什么？\n\n```html\n<textarea maxlength=\"10\" id=\"yideng\"></textarea>\n<script>\n  document.getElementById(\"yideng\").value = \"a\".repeat(10) + \"b\";\n</script>\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/715)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nfunction sidEffecting(ary) {\n  arr[0] = arr[2];\n}\nfunction yideng(a, b, c = 3) {\n  c = 10;\n  sidEffecting(arguments);\n  return a + b + c;\n}\nyideng(1, 1, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/714)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nyideng();\nvar flag = true;\nif (flag) {\n  function yideng() {\n    console.log(\"yideng1\");\n  }\n} else {\n  function yideng() {\n    console.log(\"yideng2\");\n  }\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/713)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释为什么\n\n```js\nvar min = Math.min(),\n  max = Math.max();\nconsole.log(min < max);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/712)\n\n<br/>\n\n### 请手写实现一个拖拽\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/711)\n\n<br/>\n\n### 请手动实现一个浅拷贝\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/710)\n\n<br/>\n\n### 介绍 instanceof 原理，并手动实现\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/709)\n \n<br/>\n\n### 请实现一个 JSON.stringfy\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/708)\n\n<br/>\n\n### 请实现一个 JSON.parse\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/707)\n\n<br/>\n\n### 说一下减少 dom 数量的办法？一次性给你大量的 dom 怎么优化？\n\n公司：58\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/706)\n\n<br/>\n\n### vue hooks 有哪些\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/705)\n\n<br/>\n\n### 介绍 Vue template 到 render 的过程\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/704)\n\n<br/>\n\n### 为什么用 gulp 打包 node\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/703)\n\n<br/>\n\n### Node 不支持哪些 ES6 语法\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/702)\n\n<br/>\n\n### Webpack 为什么慢，如何进行优化\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/701)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nconsole.log(\"hello\" + (1 < 2) ? \"word\" : \"me\");\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/700)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nvar a = (b = 1);\n(function () {\n  var a = (b = 2);\n})();\nconsole.log(a, b);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/699)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nif ([] instanceof Object) {\n  console.log(typeof null);\n} else {\n  console.log(typeof undefined);\n}\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/698)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nvar obj = {};\nobj.name = \"first\";\nvar peo = obj;\npeo.name = \"second\";\nconsole.log(obj.name);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/697)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nfunction say(word) {\n  let word = \"hello\";\n  console.log(word);\n}\nsay(\"hello Lili\");\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/696)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nfunction fun(n, o) {\n  console.log(o);\n  return {\n    fun: function (m) {\n      return fun(m, n);\n    },\n  };\n}\nvar b = fun(0).fun(1).fun(2).fun(3);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/695)\n\n<br/>\n\n### 以下选项为 css 盒模型属性有哪些？(多选题)\n\n```js\nA.font\nB.margin\nC.padding\nD.visible\nE.border\n```\n\n公司：会小二\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/694)\n\n<br/>\n\n### 递归公式的时间复杂度为？(单选题)\n\n```js\nA.O(n)\nB.O(logn)\nC.O(nlogn)\nD.O(n2)\n```\n\n公司：会小二\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/693)\n\n<br/>\n\n### 以下说法中对协议描述不正确的是？(单选题)\n\n```js\nA.HTTP 协议是在 TCP/IP 协议之上的应用层协议\nB.HTTP 1.1 缺省支持 keep-alive\nC.WebSocket 是由 Socket 发展而来的新规范\nD.WebSocket 可以建立持久连接\n```\n\n公司：会小二\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/692)\n\n<br/>\n\n### 以下哪些是 HTTP 请求中浏览器缓存机制会用到的协议头？(多选题)\n\n```js\nA.Last-Modified\nB.Etag\nC.Referer\nD.Authorization\n```\n\n公司：会小二\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/691)\n\n<br/>\n\n### 怎么定义 vue-router 的动态路由？怎么获取传过来的动态参数？\n\n公司：会小二\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/690)\n\n<br/>\n\n### JavaScript 中如何模拟实现方法的重载\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/689)\n\n<br/>\n\n### 请解释 JSONP 的工作原理\n\n公司：会小二、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/688)\n\n<br/>\n\n### 用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/687)\n\n<br/>\n\n### 用 JavaScript 实现一个标准的排序算法(快排、冒泡、选择排序)，对某个数字数组进行由低到高的排序。\n\n公司：会小二\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/686)\n\n<br/>\n\n### 实现一个打点计时器\n\n```js\n/* \n  1.从start至end,每隔100毫秒console.log一个数字，每次数字增幅为1\n  2.返回的对象中需要包含一个cancel方法，用于停止定时操作\n  3.第一个数字需要立即输出\n*/\n```\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/685)\n\n<br/>\n\n### 下面关于 Vue 说法正确的是？(单选题)\n\n```js\nA.data 中某一属性的值发生改变后，视图会立即同步进行重新渲染\nB.Vue 实例创建后再添加的属性，该属性改动将不会触发视图更新\nC.计算属性只有在它的相关依赖发生改变时才会重新求值\nD.Vue 组件的 data 选项必须是函数\n```\n\n公司：会小二\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/684)\n\n<br/>\n\n### JavaScript 写一个单例模式，可以具体到某一个场景\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/683)\n\n<br/>\n\n### JavaScript 基本数据类型都有哪些？用 typeOf 判断分别显示什么？\n\n公司：会小二、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/682)\n\n<br/>\n\n### 怎么判断引用类型数据，兼容判断原始类型数据呢？\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/681)\n\n<br/>\n\n### 请写下你对协商缓存和强缓存的理解？\n\n公司：会小二、58\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/680)\n\n<br/>\n\n### git pull -rebase 和 git pull 的区别是什么？\n\n公司：会小二\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/679)\n\n<br/>\n\n### 说下盒模型的区别？介绍一下标准的 CSS 盒模型？border-box 和 content-box 有什么区别？\n\n公司：快手、会小二\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/678)\n\n<br/>\n\n### 给出页面的加载顺序\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/677)\n\n<br/>\n\n### Html5 有哪些新特性？如何处理 Html5 新标签的浏览器兼容问题？如何区分 Html 和 Html5?\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/676)\n\n<br/>\n\n### 找出“aaaabbcccdddd”字符串中出现最多的字母？\n\n公司：心娱\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/675)\n\n<br/>\n\n### 概述异步编程模型\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/674)\n\n<br/>\n\n### 在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/673)\n\n<br/>\n\n### 分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/672)\n\n<br/>\n\n### 简述 JavaScript 中的函数的几种调用方式\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/671)\n\n<br/>\n\n### 编写一个 Person 类，并创建两个不同的 Person 对象\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/670)\n\n<br/>\n\n### 详细描述一个 http 请求从发起请求到收到响应的全部过程(越细越好)\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/669)\n\n<br/>\n\n### 简述静态链接和动态链接的区别，并举例说明\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/668)\n\n<br/>\n\n### 求 n 以内的所有素数，并说明时间复杂度\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/667)\n\n<br/>\n\n### 手写实现 call\n\n公司：腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/666)\n\n<br/>\n\n### 手写实现 apply\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/665)\n\n<br/>\n\n### 一个 dom 必须要操作几百次，该如何解决，如何优化？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/664)\n\n<br/>\n\n### 为什么要用 Vuex 或者 Redux，不要说为了保存状态\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/663)\n\n<br/>\n\n### 为什么 Vue data 必须是函数\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/662)\n\n<br/>\n\n### 页面埋点怎么实现 \n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/660)\n\n<br/>\n\n### 除了 jsonp、postmessage 后端控制，怎么实现跨页面通讯\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/659)\n\n<br/>\n\n### Vue data 中某一个属性的值发生改变后，视图会立即同步执行重新渲染吗？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/658)\n\n<br/>\n\n### Webpack 打包出来的体积太大，如何优化体积？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/657)\n\n<br/>\n\n### 缓存有哪些？前端缓存有哪些？怎么用？如何和后台配合\n\n公司：高思教育\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/656)\n\n<br/>\n\n### 说一下 let、const 的实现，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/655)\n\n<br/>\n\n### 简述 mixin、extends 的覆盖逻辑\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/654)\n\n<br/>\n\n### Vue 子组件和父组件执行顺序\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/653)\n\n<br/>\n\n### Dom tree 和 cssdom 是如何合并成 render tree 的\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/652)\n\n<br/>\n\n### addEventListener 再 removeListener 会不会造成内存泄漏\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/651)\n\n<br/>\n\n### scrollview 如何进行性能优化(例如 page=100 时，往上滚动)\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/650)\n\n<br/>\n\n### 原生 JavaScript 获取 ul 中的第二个 li 里边的 p 标签的内容\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/648)\n\n<br/>\n\n### 说下 offsetWith 和 clientWidth、offsetHeight 和 clientHeight 的区别，说说 offsetTop，offsetLeft，scrollWidth、scrollHeight 属性都是干啥的\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/647)\n\n<br/>\n\n### Css 单位都有哪些？\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/646)\n\n<br/>\n\n### Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准\n\n公司：快手\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/645)\n\n<br/>\n\n### 一个标签的 class 样式的渲染顺序，id、class、标签、伪类的优先级\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/644)\n\n<br/>\n\n### 写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/643)\n\n<br/>\n\n### 数组截取插入 splice，push 返回值，数组的栈方法、队列方法、排序方法、操作方法、迭代方法说一下\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/642)\n\n<br/>\n\n### 判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/641)\n\n<br/>\n\n### 判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型？Object.prototype.toString.call(Symbol) 返回什么？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/640)\n\n<br/>\n\n### 对作用域和闭包的理解，解释下 let 和 const 的块级作用域\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/639)\n\n<br/>\n\n### 以下代码输出什么？\n\n```js\nsetTimeout(function () {\n  console.log(1);\n}, 0);\nnew Promise(function executor(resolve) {\n  console.log(2);\n  for (var i = 0; i < 10000; i++) {\n    i == 9999 && resolve();\n  }\n  console.log(3);\n}).then(function () {\n  console.log(4);\n});\nconsole.log(5);\n```\n\n公司：心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/638)\n\n<br/>\n\n### switch case，case 具体是怎么比较的，哪些情况下会走到 default\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/637)\n\n<br/>\n\n### 说下 typeof()各种类型的返回值？instanceof 呢？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/636)\n\n<br/>\n\n### if([] == 0), [1,2] == \"1,2\", if([]), [] == 0 具体是怎么对比的\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/635)\n\n<br/>\n\n### 如何加快页面渲染速度，都有哪些方式\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/634)\n\n<br/>\n\n### generator 的实现原理\n\n公司：滴滴、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/633)\n\n<br/>\n\n### CDN 分布式部署，如何处理用户请求最近的资源？\n\n公司：快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/632)\n\n<br/>\n\n### 说一下缓存有哪几种，具体都是怎么实现和比较的，缓存优先级，相互之间的对比\n\n公司：快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/631)\n\n<br/>\n\n### 使用 typescript 的优势有哪些\n\n公司：快手\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/630)\n\n<br/>\n\n### 说下你对浏览器缓存理解\n\n公司：头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/629)\n\n<br/>\n\n### css 如何实现动画\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/628)\n\n<br/>\n\n### 判断是否是数组的方法\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/627)\n\n<br/>\n\n### 给定一个二叉树，找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/626)\n\n<br/>\n\n### 给定一个整数数组 nums，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/625)\n\n<br/>\n\n### 手写 EventEmitter 实现\n\n公司：头条、亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/624)\n\n<br/>\n\n### Http 连接是如何复用的\n\n公司：酷狗\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/623)\n\n<br/>\n\n### 给出的两行代码为什么这么输出\n\n```js\nvar s = \"laohu\";\ns[0] = 1;\nconsole.log(s); //laohu\nvar s = \"laohu\";\ns += 2020;\nconsole.log(s); // laohu2020\n// 上面两行为什么这么输出\n```\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/622)\n\n<br/>\n\n### 动画性能如何检测\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/621)\n\n<br/>\n\n### 谈下淘宝和京东页面的实现\n\n公司：酷狗\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/620)\n\n<br/>\n\n### 平时都用到了哪些设计模式\n\n公司：酷狗、沪江、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/619)\n\n<br/>\n\n### 如何监控 MySql、Redis 性能\n\n公司：酷狗\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/618)\n\n<br/>\n\n### 对 service worker 的理解\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/617)\n\n<br/>\n\n### Webpack 热更新的原理\n\n公司：酷狗\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/616)\n\n<br/>\n\n### Css 如何实现一个半圆\n\n公司：酷狗\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/615)\n\n<br/>\n\n### 一个活动项目里包含多个活动，Webpack 如何实现单独打包某个活动？\n\n公司：酷狗\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/614)\n\n<br/>\n\n### 单点登录实现原理\n\n公司：CVTE\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/862)\n\n<br/>\n\n### 尾递归实现\n\n公司：CVTE\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/861)\n\n<br/>\n\n### 有 1000 个 dom，需要更新其中的 100 个，如何操作才能减少 dom 的操作？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/860)\n\n<br/>\n\n### 商城的列表页跳转到商品的详情页，详情页数据接口很慢，前端可以怎么优化用户体验？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/859)\n\n<br/>\n\n### 多个 tab 只对应一个内容框，点击每个 tab 都会请求接口并渲染到内容框，怎么确保频繁点击 tab 但能够确保数据正常显示？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/858)\n\n<br/>\n\n### 301、302 的 https 被挟持怎么办？\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/857)\n\n<br/>\n\n### 介绍 Http2 特性，Http2 怎么确保文件同时传输不会报错\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/856)\n\n<br/>\n\n### 请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)\n\n公司：爱范儿、道一云\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/854)\n\n<br/>\n\n### 完成一个表达式，验证用户输入是否是电子邮箱\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/853)\n\n<br/>\n\n### 原生实现 ES5 的 Object.create()方法\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/852)\n\n<br/>\n\n### 列举并解释一下 http 的所有请求方法，\n\n公司：爱范儿、乘法云\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/851)\n\n<br/>\n\n### 如何记录前端在用户浏览器上发生的错误并汇报给服务器？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/850)\n\n<br/>\n\n### 有哪几种方式可以解决跨域问题？(描述对应的原理)\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/849)\n\n<br/>\n\n### 按要求完成题目\n\n```js\n/* \n  a)在不使用vue、react的前提下写代码解决一下问题\n    一个List页面上，含有1000个条目的待办列表，现其中100项在同一时间达到了过期时间，需要在对应项的text-node里添加“已过期”文字。需要尽可能减少dom重绘次数以提升性能。\n  b)尝试使用vue或react解决上述问题\n*/\n```\n\n公司：爱范儿\n\n分类：JavaScript、Vue、React、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/848)\n\n<br/>\n\n### 你是如何组织 JavaScript 代码的？（可以从模块、组件、模式、编程思想等方面回答）\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/847)\n\n<br/>\n\n### 移动 web 开发时如何调试？了解哪些多屏适配方案？\n\n公司：爱范儿\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/846)\n\n<br/>\n\n### 算法考察：Next Permutation\n\n```js\n/* \n  Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.\n  If such arrangement is not possible, it must rearrange it as the lowest possible order (ie, sorted in ascending order).\n  The replacement must be in-place, do not allocate extra memory.\n  Here are some examples. Inputs are in the left-hand column and its corresponding outputs are in the right-hand column.\n  1,2,3 → 1,3,2\n  3,2,1 → 1,2,3\n  1,1,5 → 1,5,1\n*/\n```\n\n公司：爱范儿\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/845)\n\n<br/>\n\n### 填充代码实现 template 方法\n\n```js\nvar str = \"您好，<%=name%>。欢迎来到<%=location%>\";\nfunction template(str) {\n  // your code\n}\nvar compiled = template(srt);\n// compiled的输出值为：“您好，张三。欢迎来到网易游戏”\ncompiled({ name: \"张三\", location: \"网易游戏\" });\n```\n\n公司：网易\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/844)\n\n<br/>\n\n### 请说明 Html 布局元素的分类有哪些？并描述每种布局元素的应用场景？\n\n公司：玄武科技\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/843)\n\n<br/>\n\n### 列举出在浏览器中，页面加载过程中发出了哪些事件？并画出这些事件的执行顺序？\n\n公司：玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/842)\n\n<br/>\n\n### 请描述下为什么页面需要做优化？并写出常用的页面优化实现方案？\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/841)\n\n<br/>\n\n### 请画出 css 盒模型，基于盒模型的原理，说明相对定位、绝对定位、浮动实现样式是如何实现的？\n\n公司：玄武科技\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/840)\n\n<br/>\n\n### 列举出 css 选择器有哪些分类，并至少写出三个 css 选择器之间的区别，适用场景\n\n公司：玄武科技\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/839)\n\n<br/>\n\n### 请列出至少 5 个 JavaScript 常用的内置对象，说明用途\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/838)\n\n<br/>\n\n### 请描述下 JavaScript 中 Scope、Closure、Prototype 概念，并说明 JavaScript 封装、继承实现原理。\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/837)\n\n<br/>\n\n### 请列出目前主流的 JavaScript 模块化实现的技术有哪些？说出它们的区别？\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/836)\n\n<br/>\n\n### 请列出 HTTP/1.1 协议 Response 状态码：20x、30x、40x、50x 等各区间的含义，并说明 Action 在 Restful API 中分别使用哪些 Http 副词(action)表现出 CRUD?\n\n公司：玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/835)\n\n<br/>\n\n### 请说明 JavaScript 进行压缩、合并、打包实现的原理是什么？为什么需要压缩、合并、打包？分别列出一种常用工具或插件\n\n公司：玄武科技\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/834)\n\n<br/>\n\n### 请说出前端框架设计模式(MVVM 或 MVP 又或 MVC)的含义以及原理\n\n公司：玄武科技\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/833)\n\n<br/>\n\n### 请用 JavaScript 代码实现事件代理\n\n公司：玄武科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/832)\n\n<br/>\n\n### 实现格式化输出，比如输入 999999999，输出 999,999,999\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/831)\n\n<br/>\n\n### 使用 JavaScript 实现 cookie 的设置、读取、删除\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/830)\n\n<br/>\n\n### 请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"http://iauto360.cn/index.php?key0=0&key1=1&key2=2\"\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/829)\n\n<br/>\n\n### node 如何进行跨域通信\n\n公司：高思教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/828)\n\n<br/>\n\n### Vuex 和 localStorage 的区别\n\n公司：高思教育\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/827)\n\n<br/>\n\n### 如何实现 a,b 两个变量的交换\n\n公司：高思教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/825)\n\n<br/>\n\n### Vue 双向绑定原理\n\n公司：高思教育、安居客\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/824)\n\n<br/>\n\n### 开发环境热更新的优化方式\n\n公司：高思教育\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/823)\n\n<br/>\n\n### 给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符\n\n公司：高思教育\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/822)\n\n<br/>\n\n### 按要求实现代码\n\n```js\n/* \n  根据传入参数n(数字)对一维数组(纯数字)按照距离n最近的顺序排序。(距离即数字与n的差值的绝对值)\n*/\nvar arr = [7, 28, -1, 0, 7, 33];\nfunction sort(n) {\n  // your code\n}\n```\n\n公司：高思教育\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/821)\n\n<br/>\n\n### 说一下路由钩子在 Vue 生命周期的体现？\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/820)\n\n<br/>\n\n### 计算属性和普通属性的区别\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/819)\n\n<br/>\n\n### 描述下自定义指令(你是怎么用自定义指令的)\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/818)\n\n<br/>\n\n### 说一下 Vue 中所有带\\$的方法\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/817)\n\n<br/>\n\n### catch-control 有哪些设定值\n\n公司：58\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/816)\n\n<br/>\n\n### AMD 和 CMD 有哪些区别？\n\n公司：58\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/815)\n\n<br/>\n\n### 微任务和宏任务的区别\n\n公司：58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/814)\n\n<br/>\n\n### 你是怎么配置开发环境的？\n\n公司：58\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/813)\n\n<br/>\n\n### 列举 3 种强制类型转换和 2 种隐式类型转换\n\n公司：58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/812)\n\n<br/>\n\n### 小程序里面打开页面最多多少，生命周期、常用的 api 列举几个？\n\n公司：饿了么、安居客\n\n分类：小程序\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/811)\n\n<br/>\n\n### Vue-router 除了 router-link 怎么实现跳转\n\n公司：安居客\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/810)\n\n<br/>\n\n### 原生 JavaScript 实现图片懒加载的思路\n\n公司：安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/809)\n\n<br/>\n\n### 回调函数和任务队列的区别\n\n公司：安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/808)\n\n<br/>\n\n### 如何实现 webpack 持久化缓存\n\n公司：乘法云\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/807)\n\n<br/>\n\n### 找出两个数组的交集元素\n\n公司：乘法云\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/806)\n\n<br/>\n\n### Css 实现 div 宽度自适应，宽高保持等比缩放\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/805)\n\n<br/\n\n### ul 内部除最后一个 li 以外设置右边框效果\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/804)\n\n<br/>\n\n### flex:1 的完整写法是？分别是什么意思？\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/803)\n\n<br/>\n\n### 写出下面代码的输出结果\n\n```js\n//counter.js\nlet counter = 10;\nexport default counter;\n\n//index.js\nimport myCounter from \"./counter\";\nmyCounter += 1;\nconsole.log(myCounter);\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/802)\n\n<br/>\n\n### 用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定\n\n公司：快手\n\n分类：其它、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/801)\n\n<br/>\n\n### 有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”\n\n```js\nfunction A() {\n  console.log(\"调用了函数A\");\n}\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/800)\n\n<br/>\n\n### 在浏览器执行以下代码，写出打印结果\n\n```js\nconsole.log(\"start\");\nsetTimeout(() => {\n  console.log(\"children2\");\n  Promise.resolve().then(() => {\n    console.log(\"children3\");\n  });\n}, 0);\nnew Promise(function (resolve, reject) {\n  console.log(\"children4\");\n  setTimeout(function () {\n    console.log(\"children5\");\n    resolve(\"children6\");\n  }, 0);\n}).then((res) => {\n  console.log(\"children7\");\n  setTimeout(() => {\n    console.log(res);\n  }, 0);\n});\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/799)\n\n<br/>\n\n### 输入一个整数，输出该数二进制表示中 1 的个数\n\n公司：新东方\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/798)\n\n<br/>\n\n### 行内元素和块级元素有什么区别\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/797)\n\n<br/>\n\n### link 和@inmport 区别\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/796)\n\n<br/>\n\n### ⽤ js 实现随机选取 10–100 之间的 10 个且不重复的数字，存⼊⼀个数组，还要排序\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/795)\n\n<br/>\n\n### 请写出弹出值，并解释为什么？\n\n```js\nalert(a);\na();\nvar a = 3;\nfunction a() {\n  alert(10);\n}\nalert(a);\na = 6;\na();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/794)\n\n<br/>\n\n### 写出输出值，并解释为什么\n\n```js\nfunction test(m) {\n  m = { v: 5 };\n}\nvar m = { k: 30 };\ntest(m);\nalert(m.v);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/793)\n\n<br/>\n\n### 请写出代码执⾏结果，并解释为什么\n\n```js\nfunction yideng() {\n  console.log(1);\n}\n(function () {\n  if (false) {\n    function yideng() {\n      console.log(2);\n    }\n  }\n  console.log(typeof yideng);\n  yideng();\n})();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/792)\n\n<br/>\n\n### 请写出代码执⾏结果，并解释为什么\n\n```js\nfunction fn() {\n  console.log(this.length);\n}\nvar person = {\n  length: 5,\n  method: function (fn) {\n    fn();\n  },\n};\nperson.method(fn, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/790)\n\n<br/>\n\n### 给定⼀个⼤⼩为 n 的数组，找到其中的众数。众数是指在数组中出现次数⼤于 n/2 的元素\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/789)\n\n<br/>\n\n### HTTP2.0的多路复⽤和HTTP1.X中的⻓连接复⽤有什么区别？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/788)\n\n<br/>\n\n### HTTP2.0多路复⽤有多好？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/787)\n\n<br/>\n\n### React兄弟组件的通信方式？(需回答两种以上)\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/786)\n\n<br/>\n\n### Fiber算法原理，相比之前的stack算法哪些方面做了优化？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/785)\n\n<br/>\n\n### 如何实现双向绑定，并抽象成公共组件\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/784)\n\n<br/>\n\n### 原生实现addClass,用多种方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/783)\n\n<br/>\n\n### 实现一个倒计时,setInterval实现的话，如何消除时间误差\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/871)\n\n<br/\n\n### React SSR实现过程？原理是什么？有什么注意事项？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/869)\n\n<br/>\n\n### Node性能如何进监控以及优化？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/869)\n\n<br/>\n\n### http请求由什么组成？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/868)\n\n<br/>\n\n### 屏幕正中间有个元素A，元素A中有文字A，随着屏幕宽度的增加，始终需要满足下列条件\n\n```js\n/* \n  A元素垂直居中于屏幕中央\n  A元素距离屏幕左右边距各10px\n  A元素里面的文字A的font-size:20px；水平垂直居中\n  A元素的高度始终是A元素宽度的50%；(如果搞不定可以实现为A元素的高度固定为200px)\n  \n  请用html及css实现\n*/\n```\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/867)\n\n<br/>\n\n### 函数中的arguments是数组吗？若不是，如何将它转化为真正的数组？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/866)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nif([] == false){console.log(1)};\nif({} == false) {console.log(2)};\nif([]){console.log(3)};\nif([1] == [1]){console.log(4)};\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/865)\n\n<br/>\n\n### 以最小的改动解决以下代码的错误(可以使用ES6)\n\n```js\nconst obj = {\n  name:\"jsCoder\",\n  skill:[\"es6\",\"react\",\"angular\"],\n  say:function(){\n    for(var i = 0,len = this.skill.length;i<len;i++){\n      setTimeout(function(){\n        console.log('No.' + i + this.name);\n        console.log(this.skill[i]);\n        console.log('----------------');\n      },0);\n      console.log(i);\n    }\n  }\n}\nobj.say();\n\n/* \n  期望得到下面的结果\n  1\n  2\n  3\n  No.1 jsCoder\n  es6\n  ----------------\n  No.2 jsCoder\n  react\n  ----------------\n  No.3 jsCoder\n  angular\n*/\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/864)\n\n<br/>\n\n### 实现Function 原型的bind方法，使得以下程序最后能输出“success”\n\n```js\nfunction Animal(name,color){\n  this.name = name;\n  this.color = color;\n}\nAnimal.prototype.say = function(){\n  return `I'm a ${this.color}${this.name}`;\n}\nconst Cat = Animal.bind(null,'cat');\nconst cat = new Cat('white');\nif(cat.say() === \"I'm white cat\" && cat instanceof Cat && cat instanceof Animal){\n  console.log('sunccess');\n}\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/863)\n\n<br/>"
  },
  {
    "path": "summarry/css.md",
    "content": "# Css题目汇总\n\n- [css 伪类与伪元素区别](#css-伪类与伪元素区别)\n- [说一下盒子模型，以及标准情况和 IE 下的区别](#说一下盒子模型以及标准情况和-ie-下的区别)\n- [Css 如何画出一个扇形，动手实现下](#css-如何画出一个扇形动手实现下)\n- [iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决](#iphone-里面-safari-上如果一个输入框-fixed-绝对定位在底部当软键盘弹出的时候会有什么问题如何解决)\n- [BFC 是什么？触发 BFC 的条件是什么？有哪些应用场景？](#bfc-是什么触发-bfc-的条件是什么有哪些应用场景)\n- [说一下什么是重绘重排，哪些操作会造成重绘重排](#说一下什么是重绘重排哪些操作会造成重绘重排)\n- [什么情况会出现浏览器分层](#什么情况会出现浏览器分层)\n- [通过 link 进来的 css 会阻塞页面渲染嘛，Js 会阻塞吗，如果会如何解决？](#通过-link-进来的-css-会阻塞页面渲染嘛js-会阻塞吗如果会如何解决)\n- [使用 Css 实现一个水波纹效果](#使用-css-实现一个水波纹效果)\n- [position 定位都有什么属性（不仅仅是绝对定位和相对定位/fix 定位）](#position-定位都有什么属性不仅仅是绝对定位和相对定位fix-定位)\n- [说一下 Css 预处理器，Less 带来的好处？](#说一下-css-预处理器less-带来的好处)\n- [Css 选择器都有什么，权重是怎么计算的](#css-选择器都有什么权重是怎么计算的)\n- [布局都有什么方式，float 和 position 有什么区别](#布局都有什么方式float-和-position-有什么区别)\n- [nth-child和nth-of-type 有什么区别](#nth-child和nth-type-of-有什么区别)\n- [&lt;img&gt;是什么元素](#img是什么元素)\n- [flex 布局，如何实现把八个元素分两行摆放](#flex-布局如何实现把八个元素分两行摆放)\n- [Css 方式实现一个不知道宽高的 div 居中都有哪几种方法](#css-方式实现一个不知道宽高的-div-居中都有哪几种方法)\n- [以下 css 最后是什么颜色](#以下-css-最后是什么颜色)\n- [简述 Grid 布局](#简述-grid-布局)\n- [动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)](#动手实现一个左右固定100px中间自适应的三列布局至少三种)\n- [屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法](#屏幕占满和未占满的情况下使-footer-固定在底部尽量多种方法)\n- [Css 画一个三角形](#css-画一个三角形)\n- [Css 超出省略怎么写，三行超出省略怎么写](#css-超出省略怎么写三行超出省略怎么写)\n- [Css inherit、initial、unset 三者的区别](#css-inheritinitialunset-三者的区别)\n- [介绍下 Flex 布局，属性都有哪些，都是干啥的](#介绍下-flex-布局属性都有哪些都是干啥的)\n- [响应式布局用到的技术，移动端需要注意什么](#响应式布局用到的技术移动端需要注意什么)\n- [移动端适配 1px 的问题](#移动端适配-1px-的问题)\n- [居中为什么要使用 transform（为什么不使用 marginLeft/marginTop）](#居中为什么要使用-transform为什么不使用-marginleftmargintop)\n- [介绍 css3 中 position:sticky](#介绍-css3-中-positionsticky)\n- [清除浮动的方式](#清除浮动的方式)\n- [transform 动画和直接使用 left、top 改变位置有什么优缺点](#transform-动画和直接使用-lefttop-改变位置有什么优缺点)\n- [上下固定，中间滚动布局如何实现](#上下固定中间滚动布局如何实现)\n- [如何实现高度自适应](#如何实现高度自适应)\n- [em 和 px 的区别](#em-和-px-的区别)\n- [以下选项为 css 盒模型属性有哪些？(多选题)](#以下选项为-css-盒模型属性有哪些多选题)\n- [说下盒模型的区别？介绍一下标准的 CSS 盒模型？border-box 和 content-box 有什么区别？](#说下盒模型的区别介绍一下标准的-css-盒模型border-box-和-content-box-有什么区别)\n- [Css 单位都有哪些？](#css-单位都有哪些)\n- [Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准](#css-实现多列等高布局要求元素实际占用的高度以多列中较高的为准)\n- [一个标签的 class 样式的渲染顺序，id、class、标签、伪类的优先级](#一个标签的-class-样式的渲染顺序idclass标签伪类的优先级)\n- [css 如何实现动画](#css-如何实现动画)\n- [Css 如何实现一个半圆](#css-如何实现一个半圆)\n- [请画出 css 盒模型，基于盒模型的原理，说明相对定位、绝对定位、浮动实现样式是如何实现的？](#请画出-css-盒模型基于盒模型的原理说明相对定位绝对定位浮动实现样式是如何实现的)\n- [列举出 css 选择器有哪些分类，并至少写出三个 css 选择器之间的区别，适用场景](#列举出-css-选择器有哪些分类并至少写出三个-css-选择器之间的区别适用场景)\n- [Css 实现 div 宽度自适应，宽高保持等比缩放](#css-实现-div-宽度自适应宽高保持等比缩放)\n- [ul 内部除最后一个 li 以外设置右边框效果](#ul-内部除最后一个-li-以外设置右边框效果)\n- [flex:1 的完整写法是？分别是什么意思？](#flex1-的完整写法是分别是什么意思)\n- [行内元素和块级元素有什么区别](#行内元素和块级元素有什么区别)\n- [link 和@inmport 区别](#link-和inmport-区别)\n- [屏幕正中间有个元素A，元素A中有文字A，随着屏幕宽度的增加，始终需要满足下列条件](#屏幕正中间有个元素a元素a中有文字a随着屏幕宽度的增加始终需要满足下列条件)\n- [怎样用 css 实现一个弹幕的效果，动手实现一下](#怎样用-css-实现一个弹幕的效果动手实现一下)\n\n### css 伪类与伪元素区别\n\n公司：滴滴、网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/18)\n\n<br/>\n\n### 说一下盒子模型，以及标准情况和 IE 下的区别\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/231)\n\n<br/>\n\n### Css 如何画出一个扇形，动手实现下\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/228)\n\n<br/>\n\n### iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决\n\n公司：快手\n\n分类：JavaScript、Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/201)\n\n<br/>\n\n### BFC 是什么？触发 BFC 的条件是什么？有哪些应用场景？\n\n公司：快手、伴鱼、网易\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/194)\n\n<br/>\n\n### 说一下什么是重绘重排，哪些操作会造成重绘重排\n\n公司：滴滴、伴鱼、菜鸟网络、58\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/192)\n\n<br/>\n\n### 什么情况会出现浏览器分层\n\n公司：伴鱼\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/191)\n\n<br/>\n\n### 通过 link 进来的 css 会阻塞页面渲染嘛，Js 会阻塞吗，如果会如何解决？\n\n公司：伴鱼\n\n分类：CSS\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/190)\n\n<br/>\n\n### 使用 Css 实现一个水波纹效果\n\n参考：[第二屏中的水波纹效果](https://mp.toutiao.com/auth/page/login/?redirect_url=JTJG#/?_k=1hjyly)\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/151)\n\n<br/>\n\n### position 定位都有什么属性（不仅仅是绝对定位和相对定位/fix 定位）\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/150)\n\n<br/>\n\n### 说一下 Css 预处理器，Less 带来的好处？\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/143)\n\n<br/>\n\n### Css 选择器都有什么，权重是怎么计算的\n\n公司：完美世界\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/363)\n\n<br/>\n\n### 布局都有什么方式，float 和 position 有什么区别\n\n公司：完美世界\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/362)\n\n<br/>\n\n### `nth-child`和`nth-of-type` 有什么区别\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/357)\n\n<br/>\n\n### `<img>`是什么元素\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/356)\n\n<br/>\n\n### flex 布局，如何实现把八个元素分两行摆放\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/355)\n\n<br/>\n\n### Css 方式实现一个不知道宽高的 div 居中都有哪几种方法\n\n公司：阿里、滴滴、易车、新东方、虎扑、饿了么、爱范儿、心娱、58\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/335)\n\n<br/>\n\n### 以下 css 最后是什么颜色\n\n```html\n<style>\n  div {\n    color: red;\n  }\n  #title {\n    color: yellow;\n  }\n  div.title {\n    color: bule;\n  }\n</style>\n<div class=\"title\" id=\"title\">abc</div>\n```\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/296)\n\n<br/>\n\n### 简述 Grid 布局\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/278)\n\n<br/>\n\n### 动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)\n\n公司：自如、头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/275)\n\n<br/>\n\n### 屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/256)\n\n<br/>\n\n### Css 画一个三角形\n\n公司：会小二、高思教育、58\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/413)\n\n<br/>\n\n### Css 超出省略怎么写，三行超出省略怎么写\n\n公司：虎扑\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/405)\n\n<br/>\n\n### Css inherit、initial、unset 三者的区别\n\n公司：虎扑\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/404)\n\n<br/>\n\n### 介绍下 Flex 布局，属性都有哪些，都是干啥的\n\n公司：阿里、虎扑、快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/403)\n\n<br/>\n\n### 响应式布局用到的技术，移动端需要注意什么\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/377)\n\n<br/>\n\n### 移动端适配 1px 的问题\n\n公司：阿里\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/545)\n\n<br/>\n\n### 居中为什么要使用 transform（为什么不使用 marginLeft/marginTop）\n\n公司：阿里\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/544)\n\n<br/>\n\n### 介绍 css3 中 position:sticky\n\n公司：网易\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/529)\n\n<br/>\n\n### 清除浮动的方式\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/498)\n\n<br/>\n\n### transform 动画和直接使用 left、top 改变位置有什么优缺点\n\n公司：有赞、腾讯应用宝\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/491)\n\n<br/>\n\n### 上下固定，中间滚动布局如何实现\n\n公司：饿了么\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/449)\n\n<br/>\n\n### 如何实现高度自适应\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/430)\n\n<br/>\n\n### em 和 px 的区别\n\n公司：兑吧\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/426)\n\n<br/>\n\n### 以下选项为 css 盒模型属性有哪些？(多选题)\n\n```js\nA.font\nB.margin\nC.padding\nD.visible\nE.border\n```\n\n公司：会小二\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/694)\n\n<br/>\n\n### 说下盒模型的区别？介绍一下标准的 CSS 盒模型？border-box 和 content-box 有什么区别？\n\n公司：快手、会小二\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/678)\n\n<br/>\n\n### Css 单位都有哪些？\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/646)\n\n<br/>\n\n### Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准\n\n公司：快手\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/645)\n\n<br/>\n\n### 一个标签的 class 样式的渲染顺序，id、class、标签、伪类的优先级\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/644)\n\n<br/>\n\n### css 如何实现动画\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/628)\n\n<br/>\n\n### Css 如何实现一个半圆\n\n公司：酷狗\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/615)\n\n<br/>\n\n### 请画出 css 盒模型，基于盒模型的原理，说明相对定位、绝对定位、浮动实现样式是如何实现的？\n\n公司：玄武科技\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/840)\n\n<br/>\n\n### 列举出 css 选择器有哪些分类，并至少写出三个 css 选择器之间的区别，适用场景\n\n公司：玄武科技\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/839)\n\n<br/>\n\n### Css 实现 div 宽度自适应，宽高保持等比缩放\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/805)\n\n<br/>\n\n### ul 内部除最后一个 li 以外设置右边框效果\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/804)\n\n<br/>\n\n### flex:1 的完整写法是？分别是什么意思？\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/803)\n\n<br/>\n\n### 行内元素和块级元素有什么区别\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/797)\n\n<br/>\n\n### link 和@inmport 区别\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/796)\n\n<br/>\n\n### 屏幕正中间有个元素A，元素A中有文字A，随着屏幕宽度的增加，始终需要满足下列条件\n\n```js\n/* \n  A元素垂直居中于屏幕中央\n  A元素距离屏幕左右边距各10px\n  A元素里面的文字A的font-size:20px；水平垂直居中\n  A元素的高度始终是A元素宽度的50%；(如果搞不定可以实现为A元素的高度固定为200px)\n  \n  请用html及css实现\n*/\n```\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/867)\n\n<br/>\n\n### 怎样用 css 实现一个弹幕的效果，动手实现一下\n\n公司：头条\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/145)\n\n<br/>\n\n### justify-content:space-between around 有什么区别\n\n公司：快手\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/169)\n\n<br/>"
  },
  {
    "path": "summarry/daily.md",
    "content": "# 每日一题汇总\n\n### Day1:请写出下面代码执行的的结果\n\n```js\nconsole.log(1);\nsetTimeout(() => {\n  console.log(2);\n  process.nextTick(() => {\n    console.log(3);\n  });\n  new Promise((resolve) => {\n    console.log(4);\n    resolve();\n  }).then(() => {\n    console.log(5);\n  });\n});\nnew Promise((resolve) => {\n  console.log(7);\n  resolve();\n}).then(() => {\n  console.log(8);\n});\nprocess.nextTick(() => {\n  console.log(6);\n});\nsetTimeout(() => {\n  console.log(9);\n  process.nextTick(() => {\n    console.log(10);\n  });\n  new Promise((resolve) => {\n    console.log(11);\n    resolve();\n  }).then(() => {\n    console.log(12);\n  });\n});\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/37)\n\n<br/>\n\n### Day2:写出执行结果\n\n```js\nfunction side(arr) {\n  arr[0] = arr[2];\n}\nfunction a(a, b, c = 3) {\n  c = 10;\n  side(arguments);\n  return a + b + c;\n}\na(1, 1, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/38)\n\n<br/>\n\n### Day3:写出执行结果\n\n```js\nvar min = Math.min();\nmax = Math.max();\nconsole.log(min < max);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/39)\n\n<br/>\n\n### Day4:写出执行结果,并解释原因\n\n```js\nvar a = 1;\n(function a() {\n  a = 2;\n  console.log(a);\n})();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/40)\n\n<br/>\n\n### Day5:写出执行结果,并解释原因\n\n```js\nvar a = [0];\nif (a) {\n  console.log(a == true);\n} else {\n  console.log(a);\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/41)\n\n<br/>\n\n### Day6:写出执行结果,并解释原因\n\n```js\n(function () {\n  var a = (b = 5);\n})();\n\nconsole.log(b);\nconsole.log(a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/42)\n\n<br/>\n\n### Day7:写出执行结果,并解释原因\n\n```js\nvar fullname = \"a\";\nvar obj = {\n  fullname: \"b\",\n  prop: {\n    fullname: \"c\",\n    getFullname: function () {\n      return this.fullname;\n    },\n  },\n};\n\nconsole.log(obj.prop.getFullname()); // c\nvar test = obj.prop.getFullname;\nconsole.log(test()); // a\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/43)\n\n<br/>\n\n### Day8:写出执行结果,并解释原因\n\n```js\nvar company = {\n  address: \"beijing\",\n};\nvar yideng = Object.create(company);\ndelete yideng.address;\nconsole.log(yideng.address);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/44)\n\n<br/>\n\n### Day9:写出执行结果,并解释原因\n\n```js\nvar foo = function bar() {\n  return 12;\n};\nconsole.log(typeof bar());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/45)\n\n<br/>\n\n### Day10:写出执行结果,并解释原因\n\n```js\nvar x = 1;\nif (function f() {}) {\n  x += typeof f;\n}\nconsole.log(x);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/46)\n\n<br/>\n\n### Day11:写出执行结果,并解释原因\n\n```js\nfunction f() {\n  return f;\n}\nconsole.log(new f() instanceof f);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/47)\n\n<br/>\n\n### Day12:写出执行结果,并解释原因\n\n```js\nvar foo = {\n  bar: function () {\n    return this.baz;\n  },\n  baz: 1,\n};\nconsole.log(typeof (f = foo.bar)());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/48)\n\n<br/>\n\n### Day13:关于 AMD、CMD 规范区别说法正确的是？（多选）\n\n```js\n关于AMD、CMD规范区别说法正确的是？（多选）\n\nA.AMD规范：是 RequireJS在推广过程中对模块定义的规范化产出的\nB.CMD规范：是SeaJS 在推广过程中对模块定义的规范化产出的\nC.CMD 推崇依赖前置;AMD 推崇依赖就近\nD.CMD 是提前执行;AMD 是延迟执行\nE.AMD性能好,因为只有用户需要的时候才执行;CMD用户体验好,因为没有延迟,依赖模块提前执行了\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/49)\n\n<br/>\n\n### Day14:关于 SPA 单页页面的理解正确的是?\n\n```js\n关于SPA单页页面的理解正确的是?\n\nA.用户体验好、快，但是内容的改变需要重新加载整个页面，会造成不必要的跳转和重复渲染；\nB.前后端职责分离，架构清晰，前端进行交互逻辑，后端负责数据处理；\nC.初次加载耗时多：为实现单页 Web 应用功能及显示效果，需要在加载页面的时候将 JavaScript、CSS 统一加载，部分页面按需加载；\nD.前进后退路由管理需要使用浏览器的前进后退功能\nE.SEO 难度较大：由于所有的内容都在一个页面中动态替换显示，所以在 SEO 上其有着天然的弱势。\n```\n\n分类：Vue、React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/50)\n\n<br/>\n\n### Day15:下面对 Vue.js 中 keep-alive 的理解正确的是？（多选）\n\n```js\n下面对Vue.js中keep-alive的理解正确的是？（多选）\n\nA.一般结合路由和动态组件一起使用，用于缓存组件；\nB.提供 include 和 exclude 属性，两者都支持字符串或正则表达式， include 表示只有名称匹配的组件会被缓存，exclude 表示任何名称匹配的组件都不会被缓存 ，其中 include  的优先级比 exclude 高；\nC.对应两个钩子函数 activated 和 deactivated ，当组件被激活时，触发钩子函数 activated，当组件被移除时，触发钩子函数 deactivated。\nD.keep-alive 是 Vue 内置的一个组件，可以使被包含的组件保留状态，但是不能避免重新渲染\n\n```\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/51)\n\n<br/>\n\n### Day16:关于 Vue.js 虚拟 DOM 的优缺点说法正确的是？（多选）\n\n```js\n关于Vue.js虚拟DOM的优缺点说法正确的是？（多选）\n\nA.可以保证性能下限，比起粗暴的 DOM 操作性能要好很多，因此框架的虚拟 DOM 至少可以保证在你不需要手动优化的情况下，依然可以提供还不错的性能，即保证性能的下限；\nB.无需手动操作DOM，不再需要手动去操作 DOM，只需要写好 View-Model 的代码逻辑，框架会根据虚拟 DOM 和 数据双向绑定，帮我们以可预期的方式更新视图，极大提高我们的开发效率；\nC.可以进行极致优化： 虚拟 DOM + 合理的优化，可以使性能达到极致\nD.可以跨平台，虚拟 DOM 本质上是 JavaScript 对象,而 DOM 与平台强相关，相比之下虚拟 DOM 可以进行更方便地跨平台操作，例如服务器渲染、weex 开发等等。\n```\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/52)\n\n<br/>\n\n### Day17:下面代码输出什么？\n\n```js\nfor (let i = 0; i < 3; i++) {\n  setTimeout(() => console.log(i), 1);\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/53)\n\n<br/>\n\n### Day18:写出执行结果,并解释原因\n\n```js\nconst num = {\n  a: 10,\n  add() {\n    return this.a + 2;\n  },\n  reduce: () => this.a -2;\n};\nconsole.log(num.add());\nconsole.log(num.reduce());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/54)\n\n<br/>\n\n### Day19:写出执行结果,并解释原因\n\n```js\nconst person = { name: \"yideng\" };\n\nfunction sayHi(age) {\n  return `${this.name} is ${age}`;\n}\nconsole.log(sayHi.call(person, 21));\nconsole.log(sayHi.bind(person, 21));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/55)\n\n<br/>\n\n### Day20:写出执行结果,并解释原因\n\n```js\n[\"1\", \"2\", \"3\"].map(parseInt);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/56)\n\n<br/>\n\n### Day21:写出执行结果,并解释原因\n\n```js\n[typeof null, null instanceof Object];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/57)\n\n<br/>\n\n### Day22:写出执行结果,并解释原因\n\n```js\nfunction f() {}\nconst a = f.prototype,\n  b = Object.getPrototypeOf(f);\nconsole.log(a === b);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/58)\n\n<br/>\n\n### Day23:写出执行结果,并解释原因\n\n```js\nfunction showCase(value) {\n  switch (value) {\n    case \"A\":\n      console.log(\"Case A\");\n      break;\n    case \"B\":\n      console.log(\"Case B\");\n      break;\n    case undefined:\n      console.log(\"undefined\");\n      break;\n    default:\n      console.log(\"Do not know!\");\n  }\n}\nshowCase(new String(\"A\"));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/59)\n\n<br/>\n\n### Day24:选择正确的答案\n\n```js\nconsole.log([2,1,0].reduce(Math.pow));\nconsole.log([].reduce(Math.pow));\n\n/ *\nA. 2 报错\nB. 2 NaN\nC. 1 报错\nD. 1 NaN\n*/\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/60)\n\n<br/>\n\n### Day25:请问变量 a 会被 GC 吗\n\n```js\nfunction test() {\n  var a = 1;\n  return function () {\n    eval(\"\");\n  };\n}\ntest();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/61)\n\n<br/>\n\n### Day26:写出执行结果,并解释原因\n\n```js\nconst value = \"Value is\" + !!Number([\"0\"]) ? \"yideng\" : \"undefined\";\nconsole.log(value);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/62)\n\n<br/>\n\n### Day27:写出执行结果,并解释原因\n\n```js\nvar arr = [0, 1];\narr[5] = 5;\nnewArr = arr.filter(function (x) {\n  return x === undefined;\n});\nconsole.log(newArr.length);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/63)\n\n<br/>\n\n### Day28:写出执行结果,并解释原因(以最新谷歌浏览器为准)\n\n```js\nasync function async1() {\n  console.log(\"async1 start\");\n  await async2();\n  console.log(\"async1 end\");\n}\nasync function async2() {\n  console.log(\"async2\");\n}\nconsole.log(\"script start\");\nsetTimeout(function () {\n  console.log(\"setTimeout\");\n}, 0);\nasync1();\nnew Promise(function (resolve) {\n  console.log(\"promise1\");\n  resolve();\n}).then(function () {\n  console.log(\"promise2\");\n});\nconsole.log(\"script end\");\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/64)\n\n<br/>\n\n### Day29:下面代码中 a 在什么情况下会打印 1\n\n```js\nvar a = ?;\nif(a == 1 && a== 2 && a== 3){\n \tconsole.log(1);\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/65)\n\n<br/>\n\n### Day30:写出执行结果,并解释原因\n\n```js\nconst obj = {\n  2: 3,\n  3: 4,\n  length: 2,\n  splice: Array.prototype.splice,\n  push: Array.prototype.push,\n};\nobj.push(1);\nobj.push(2);\nconsole.log(obj);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/66)\n\n<br/>\n\n### Day31:写出执行结果,并解释原因\n\n```js\nlet a = { n: 1 };\nlet b = a;\na.x = a = { n: 2 };\nconsole.log(a.x);\nconsole.log(b.x);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/67)\n\n<br/>\n\n### Day32:写出执行结果,并解释原因\n\n```js\nvar a1 = {},\n  b1 = \"123\",\n  c1 = 123;\na1[b1] = \"b\";\na1[c1] = \"c\";\nconsole.log(a1[b1]);\nvar a2 = {},\n  b2 = Symbol(\"123\"),\n  c2 = Symbol(\"123\");\na2[b2] = \"b\";\na2[c2] = \"c\";\nconsole.log(a2[b2]);\nvar a3 = {},\n  b3 = { key: \"123\" },\n  c3 = { key: \"456\" };\na3[b3] = \"b\";\na3[c3] = \"c\";\nconsole.log(a3[b3]);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/68)\n\n<br/>\n\n### Day33:写出执行结果,并解释原因\n\n```js\nfunction Foo() {\n  Foo.a = function () {\n    console.log(1);\n  };\n  this.a = function () {\n    console.log(2);\n  };\n}\nFoo.prototype.a = function () {\n  console.log(3);\n};\nFoo.a = function () {\n  console.log(4);\n};\nFoo.a();\nlet obj = new Foo();\nobj.a();\nFoo.a();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/69)\n\n<br/>\n\n### Day34:写出执行结果,并解释原因\n\n```js\nfunction user(obj) {\n  obj.name = \"京程一灯\";\n  obj = new Object();\n  obj.name = \"精英班\";\n}\nlet person = new Object();\nuser(person);\nconsole.log(person.name);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/70)\n\n<br/>\n\n### Day35:写出执行结果,并解释原因\n\n```js\nlet x, y;\ntry {\n  throw new Error();\n} catch (x) {\n  x = 1;\n  y = 2;\n  console.log(x);\n}\nconsole.log(x);\nconsole.log(y);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/71)\n\n<br/>\n\n### Day36:写出执行结果,并解释原因\n\n```js\nfunction fn() {\n  getValue = function () {\n    console.log(1);\n  };\n  return this;\n}\nfn.getValue = function () {\n  console.log(2);\n};\nfn.prototype.getValue = function () {\n  console.log(3);\n};\nvar getValue = function () {\n  console.log(4);\n};\nfunction getValue() {\n  console.log(5);\n}\n\n//请写出以下输出结果：\ngetValue();\nfn().getValue();\ngetValue();\nnew fn.getValue();\nnew fn().getValue();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/72)\n\n<br/>\n\n### Day37:写出执行结果,并解释原因\n\n```js\nlet length = 10;\nfunction fn() {\n  console.log(this.length);\n}\nvar obj = {\n  length: 5,\n  method: function (fn) {\n    fn();\n    arguments[0]();\n  },\n};\nobj.method(fn, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/73)\n\n<br/>\n\n### Day38:写出执行结果,并解释原因\n\n```js\nvar a = 10;\nvar foo = {\n  a: 20,\n  bar: function () {\n    var a = 30;\n    return this.a;\n  },\n};\nconsole.log(foo.bar());\nconsole.log(foo.bar());\nconsole.log((foo.bar = foo.bar)());\nconsole.log((foo.bar, foo.bar)());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/74)\n\n<br/>\n\n### Day39:写出执行结果,并解释原因\n\n```js\nfunction getName() {\n  for (let i = 0; i < 5; i++) {\n    setTimeout(function () {\n      console.log(i);\n    }, i * 1000);\n  }\n  return;\n  {\n    name: \"京程一灯\";\n  }\n}\nconsole.log(getName());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/75)\n\n<br/>\n\n### Day40:写出执行结果,并解释原因\n\n```js\nconst num = parseInt(\"2*4\", 10);\nconsole.log(num);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/76)\n\n<br/>\n\n### Day41:选择正确答案，并解释为什么\n\n```js\nconst company = { name: \"京程一灯\" };\nObject.defineProperty(company, \"address\", { value: \"北京\" });\nconsole.log(company);\nconsole.log(Object.keys(company));\n/*\nA. {name:\"京程一灯\",address:\"北京\"},[\"name\",\"age\"]\nB. {name:\"京程一灯\",address:\"北京\"},[\"name\"]\nC. {name:\"京程一灯\"},[\"name\",\"age\"]\nD. {name:\"京程一灯\"},[\"name\",\"age\"]\n*/\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/77)\n\n<br/>\n\n### Day42:写出执行结果,并解释原因\n\n```js\nlet num = 10;\nconst increaseNumber = () => num++;\nconst increasePassedNumber = (number) => number++;\nconst num1 = increaseNumber();\nconst num2 = increasePassedNumber(num1);\nconsole.log(num1);\nconsole.log(num2);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/78)\n\n<br/>\n\n### Day43:写出执行结果,并解释原因\n\n```js\nconst value = { number: 10 };\nconst multiply = (x = { ...value }) => {\n  console.log((x.number *= 2));\n};\nmultiply();\nmultiply();\nmultiply(value);\nmultiply(value);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/79)\n\n<br/>\n\n### Day44:写出执行结果,并解释原因\n\n```js\n[1, 2, 3, 4].reduce((x, y) => console.log(x, y));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/80)\n\n<br/>\n\n### Day45:写出执行结果,并解释原因\n\n```js\n// index.js\nconsole.log(\"running index.js\");\nimport { sum } from \"./sum.js\";\nconsole.log(sum(1, 2));\n\n// sum.js\nconsole.log(\"running sum.js\");\nexport const sum = (a, b) => a + b;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/81)\n\n<br/>\n\n### Day46:写出执行结果,并解释原因\n\n```js\nfunction addToList(item, list) {\n  return list.push(item);\n}\nconst result = addToList(\"company\", [\"yideng\"]);\nconsole.log(result);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/95)\n\n<br/>\n\n### Day47:写出执行结果,并解释原因\n\n```js\nvar a = 0;\nif (true) {\n  a = 10;\n  console.log(a, window.a);\n  function a() {}\n  console.log(a, window.a);\n  a = 20;\n  console.log(a, window.a);\n}\nconsole.log(a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/96)\n\n<br/>\n\n### Day48:能否以某种方式为下面的语句使用展开运算而不导致类型错误\n\n```js\nvar obj = { x: 1, y: 2, z: 3 };\n[...obj]; // TypeError\n// 能否以某种方式为上面的语句使用展开运算而不导致类型错误\n// 如果可以，写出解决方式\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/97)\n\n<br/>\n\n### Day49:请你完成一个 safeGet 函数，可以安全的获取无限多层次的数据\n\n```js\n// 请你完成一个safeGet函数，可以安全的获取无限多层次的数据，一旦数据不存在不会报错，会返回 undefined，例如\nvar data = { a: { b: { c: \"yideng\" } } };\nsafeGet(data, \"a.b.c\"); // => yideng\nsafeGet(data, \"a.b.c.d\"); // => undefined\nsafeGet(data, \"a.b.c.d.e.f.g\"); // => undefined\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/98)\n\n<br/>\n\n### Day50:写一个 isPrime()函数\n\n```js\n写一个isPrime()函数，当其为质数时返回true，否则返回false。\n提示：质数是指在大于1的自然数中，除了1和它本身以外不再有其他因数的自然数。\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/99)\n\n<br/>\n\n### Day52:请实现一个 flattenDeep 函数，把嵌套的数组扁平化~~\n\n```js\nflattenDeep([1, [2, [3, [4]], 5]]); //[1, 2, 3, 4, 5]\n// 请实现一个flattenDeep函数，把嵌套的数组扁平化\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/100)\n\n<br/>\n\n### Day53:请实现一个 uniq 函数，实现数组去重~~\n\n```js\nuniq([1, 2, 3, 5, 3, 2]); //[1, 2, 3, 5]\n// 请实现一个 uniq 函数，实现数组去重\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/101)\n\n<br/>\n\n### Day54:new 操作符都做了什么，并手动实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/102)\n\n<br/>\n\n### Day55:实现 (5).add(3).minus(2) 功能\n\n```js\n// 实现 (5).add(3).minus(2) 功能\nconsole.log((5).add(3).minus(2)); // 6\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/103)\n\n<br/>\n\n### Day56:介绍下 Set、Map、WeakSet 和 WeakMap 的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/104)\n\n<br/>\n\n### Day57:如何在不使用%摸运算符的情况下检查一个数字是否是偶数\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/105)\n\n<br/>\n\n### Day58:Object.seal 和 Object.freeze 方法之间有什么区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/106)\n\n<br/>\n\n### Day59:完成 plus 函数，通过全部的测试用例\n\n```js\n\"use strict\";\nfunction plus(n) {}\nmodule.exports = plus;\n// 测试用例如下\n(\"use strict\");\nvar assert = require(\"assert\");\nvar plus = require(\"../lib/assign-4\");\ndescribe(\"测试用例\", function () {\n  it(\"plus(0) === 0\", function () {\n    assert.equal(0, plus(0).toString());\n  });\n  it(\"plus(1)(1)(2)(3)(5) === 12\", function () {\n    assert.equal(12, plus(1)(1)(2)(3)(5).toString());\n  });\n  it(\"plus(1)(4)(2)(3) === 10\", function () {\n    assert.equal(10, plus(1)(4)(2)(3).toString());\n  });\n  it(\"plus(1,1)(2,2)(3)(4) === 13\", function () {\n    assert.equal(13, plus(1, 1)(2, 2)(3)(4).toString());\n  });\n});\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/107)\n\n<br/>\n\n### Day60:解释下这段代码的意思以及用到的技术点\n\n```js\n[].forEach.call($$(\"*\"), function (a) {\n  a.style.outline =\n    \"1px solid #\" + (~~(Math.random() * (1 << 24))).toString(16);\n});\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/108)\n\n<br/>\n\n### Day61:写出执行结果,并解释原因\n\n```js\nvar yideng_a = Function.length;\nvar yideng_b = new Function().length;\nconsole.log(yideng_a === yideng_b);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/109)\n\n<br/>\n\n### Day62:不借助中间变量交换两个变量的值\n\n```js\n不借助中间变量交换两个变量的值\n比如 let a = 1,b = 2;交换a,b的值\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/110)\n\n<br/>\n\n### Day63:实现一个 isNegtiveZero 函数，只检查+0 和-0，-0 则返回 true,+0 返回 false\n\n```js\n// 实现一个isNegtiveZero函数，只检查+0和-0，-0则返回true,+0返回false\nfunction isNegtiveZero(num) {\n  // 代码实现\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/111)\n\n<br/>\n\n### Day64:补全代码\n\n```js\n/*\n\t说明：该文件名未知，位于当前项目内的dist/scripts文件夹内\n\t要求：一句话补全代码，获取它的完整位置:http://xx.com/dis/scripts/xx.js\n\t注：非node环境，node可以使用__dirname\n*/\nconst url = ✍️代码书写处；\nexport default url;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/112)\n\n<br/>\n\n### Day65:选择正确的选项\n\n```js\nclass YiDeng {\n  static str = \"京程一灯\";\n  sayStr = () => {\n    throw new Error(\"Need to implement\");\n  };\n}\nclass Student extends YiDeng() {\n  constructor() {\n    super();\n  }\n  sayStr() {\n    console.log(Student.str);\n  }\n}\nconst laoyuan = new Student();\nconsole.log(Student.str);\nlaoyuan.sayStr();\n\n//A.undefiend， 报错Need to implement\n// B. undefiend, 京程一灯\n// C. undefined, undefined\n// D.京程一灯， 报错Need to implement\n// E. 京程一灯，京程一灯\n// F.京程一灯，undefined\n// G. str is not defined, 京程一灯\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/113)\n\n<br/>\n\n### Day66:一个简单的算法题目\n\n```js\n给定一个整数数组 nums 和一个目标值 target，请你在该数组中找出和为目标值的那两个整数，这两个整数可能有多种组合，找出其中一组组合即可，并返回他们的数组下标。\n\n示例:\n给定 nums = [2, 7, 11, 15], target = 9\n因为 nums[0] + nums[1] = 2 + 7 = 9\n所以返回 [0, 1]\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/114)\n\n<br/>\n\n### Day67:写出执行结果,并解释原因\n\n```js\n3.toString()\n3..toString()\n3...toString()\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/115)\n\n<br/>\n\n### Day68:写出执行结果,并解释原因\n\n```js\nfunction yideng() {}\nconst a = {},\n  b = Object.prototype;\nconsole.log(a.prototype === b);\nconsole.log(Object.getPrototypeOf(a) === b);\nconsole.log(yideng.prototype === Object.getPrototypeOf(yideng));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/116)\n\n<br/>\n\n### Day69:写出执行结果,并解释原因\n\n```js\nconst lowerCaseOnly = /^[a-z]+$/;\nconsole.log(lowerCaseOnly.test(\"yideng\"));\nconsole.log(lowerCaseOnly.test(null));\nconsole.log(lowerCaseOnly.test());\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/117)\n\n<br/>\n\n### Day70:写出执行结果,并解释原因\n\n```js\nfunction captureOne(re, str) {\n  var match = re.exec(str);\n  return match && match[1];\n}\nvar numRe = /num=(\\d+)/gi,\n  wordRe = /yideng=(\\w+)/i,\n  a1 = captureOne(numRe, \"num=1\"),\n  a2 = captureOne(wordRe, \"yideng=1\"),\n  a3 = captureOne(numRe, \"NUM=2\"),\n  a4 = captureOne(wordRe, \"YIDENG=2\"),\n  a5 = captureOne(numRe, \"Num=3\"),\n  a6 = captureOne(wordRe, \"YiDeng=3\");\nconsole.log(a1 === a2);\nconsole.log(a3 === a4);\nconsole.log(a5 === a6);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/118)\n\n<br/>\n\n### Day71:[手写代码]实现 Promise.all 方法\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/119)\n\n<br/>\n\n### Day72:有效括号算法题\n\n```js\n/*\n\t给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效\n  有效字符串需满⾜：\n \t \t1. 左括号必须⽤相同类型的右括号闭合。\n  \t2. 左括号必须以正确的顺序闭合。\n  注意空字符串可被认为是有效字符串。\n  示例1：\n  \t输⼊: \"()\"\n  \t输出: true\n  示例2：\n  \t输⼊: \"()[]{}\"\n  \t输出: true\n  示例 3:\n  \t输⼊: \"(]\"\n  \t输出: false\n  示例 4:\n  \t输⼊: \"([)]\"\n  \t输出: false\n  示例 5:\n  \t输⼊: \"{[]}\"\n  \t输出: true\n*/\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/120)\n\n<br/>\n\n### Day73:写出执行结果,并解释原因\n\n```js\nfunction yideng(n, o) {\n  console.log(o); // ？\n  return {\n    yideng: function (m) {\n      return yideng(m, n);\n    },\n  };\n}\nconst a = yideng(0);\na.yideng(1);\na.yideng(2);\na.yideng(3);\nconst b = yideng(0).yideng(1).yideng(2).yideng(3);\nconst c = yideng(0).yideng(1);\nc.yideng(2);\nc.yideng(3);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/121)\n\n<br/>\n\n### Day74:写出执行结果,并解释原因\n\n```js\nvar arr1 = \"ab\".split(\"\");\nvar arr2 = arr1.reverse();\nvar arr3 = \"abc\".split(\"\");\narr2.push(arr3);\nconsole.log(arr1.length);\nconsole.log(arr1.slice(-1));\nconsole.log(arr2.length);\nconsole.log(arr2.slice(-1));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/122)\n\n<br/>\n\n### Day75:写出执行结果,并解释原因\n\n```js\nvar F = function () {};\nObject.prototype.a = function () {\n  console.log(\"yideng\");\n};\nFunction.prototype.b = function () {\n  console.log(\"xuetang\");\n};\nvar f = new F();\nF.a();\nF.b();\nf.a();\nf.b();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/123)\n\n<br/>\n\n### Day76:写出执行结果,并解释原因\n\n```js\nconst a = [1, 2, 3],\n  b = [1, 2, 3],\n  c = [1, 2, 4],\n  d = \"2\",\n  e = \"11\";\nconsole.log([a == b, a === b, a > c, a < c, d > e]);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/124)\n\n<br/>\n\n### Day77:补充代码，使代码可以正确执行\n\n```js\nconst str = \"1234567890\";\nfunction formatNumber(str) {\n  // your code\n}\nconsole.log(formatNumber(str)); //1,234,567,890\n// 补充代码，使代码可以正确执行\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/125)\n\n<br/>\n\n### Day78:Script 放在底部还会影响 dom 的解析和渲染吗？Script 内部的代码执行会等待 css 加载完吗？css 加载会影响 DOMContentLoaded 么？\n\n```html\n<!ODCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <title>京程一灯，每日一题</title>\n  </head>\n  <body>\n    <!--\n\t\t\t1.Script放在底部还会影响dom的解析和渲染吗？\n\t\t\t2.Script内部的代码执行会等待css加载完吗？\n\t\t\t3.css加载会影响DOMContentLoaded么？\n\t\t-->\n    <link href=\"https://cdn/css/bootstrap.css\" ref=\"stylesheet\" />\n    <h1>京程一灯</h1>\n    <script>\n      console.log(\"DOMContentLoaded\");\n    </script>\n  </body>\n</html>\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/126)\n\n<br/>\n\n### Day79:写出下面代码 null 和 0 进行比较的代码执行结果，并解释原因\n\n```js\nconsole.log(null == 0);\nconsole.log(null <= 0);\nconsole.log(null < 0);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/127)\n\n<br/>\n\n### Day80:关于数组 sort，下面代码的正确打印结果是什么，并解释原因\n\n```js\nconst arr1 = [\"a\", \"b\", \"c\"];\nconst arr2 = [\"b\", \"c\", \"a\"];\nconsole.log(\n  arr1.sort() === arr1,\n  arr2.sort() == arr2,\n  arr1.sort() === arr2.sort()\n);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/128)\n\n<br/>\n\n### Day81:介绍防抖与节流的原理，并动手实现\n\n```js\n// 京程一灯，每日一题\nconst debounce = (fn, delay) => {\n  // 介绍防抖函数原理，并实现\n  // your code\n};\nconst throttle = (fn, delay = 500) => {\n  // 介绍节流函数原理，并实现\n  // your code\n};\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/129)\n\n<br/>\n\n### Day82:关于隐式转换，下面代码的执行结果是什么？并解释原因\n\n```js\nlet a = [];\nlet b = \"0\";\nconsole.log(a == 0);\nconsole.log(a == !a);\nconsole.log(b == 0);\nconsole.log(a == b);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/130)\n\n<br/>\n\n### Day83:请写出如下代码的打印结果\n\n```js\nvar obj = {};\nvar x = +obj.yideng?.name ?? \"京程一灯\";\nconsole.log(x);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/131)\n\n<br/>\n\n### Day84:对于 length 下面代码的输出结果是什么？并解释原因\n\n```js\nfunction foo() {\n  console.log(length);\n}\nfunction bar() {\n  var length = \"京程一灯\";\n  foo();\n}\nbar();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/132)\n\n<br/>\n\n### Day85:对于扩展运算符，下面代码的执行结果是什么？并解释原因\n\n```js\nlet ydObject = { ...null, ...undefined };\nconsole.log(ydObject);\nlet ydArray = [...null, ...undefined];\nconsole.log(ydArray);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/133)\n\n<br/>\n\n### Day86:写出类数组转换结果，并解释原因\n\n```js\nconst arrLike = {\n  length: 4,\n  0: 0,\n  1: 1,\n  \"-1\": 2,\n  3: 3,\n  4: 4,\n};\nconsole.log(Array.from(arrLike));\nconsole.log(Array.prototype.slice.call(arrLike));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/134)\n\n<br/>\n\n### Day87:写出下面代码 1，2，3 的大小判断结果\n\n```js\nconsole.log(1 < 2 < 3);\nconsole.log(3 > 2 > 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/135)\n\n<br/>\n\n### Day88:以下两段代码会抛出异常吗？解释原因？\n\n```js\nlet yd = { x: 1, y: 2 };\n// 以下两段代码会抛出异常吗？\nlet ydWithXGetter1 = {\n  ...yd,\n  get x() {\n    throw new Error();\n  },\n};\n\nlet ydWithXGetter2 = {\n  ...yd,\n  ...{\n    get x() {\n      throw new Error();\n    },\n  },\n};\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/136)\n\n<br/>\n\n### Day89:请问 React 调用机制一共对任务设置了几种优先级别？每种优先级都代表的具体含义是什么？在你开发过程中如果遇到影响主 UI 渲染卡顿的任务，你又是如何利用这些优先级的？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/137)\n\n<br/>\n\n### Day90:Vue 父组件可以监听到子组件的生命周期吗？如果能请写出你的实现方法。\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/138)\n\n<br/>\n\n### Day91:Vue 为什么要用 vm.\\$set() 解决对象新增属性不能响应的问题 ？你能说说如下代码的实现原理么？\n\n```js\nVue.set(object, propertyName, value);\nvm.$set(object, propertyName, value);\n```\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/139)\n\n<br/>\n\n### Day92:既然 Vue 通过数据劫持可以精准探测数据在具体 dom 上的变化,为什么还需要虚拟 DOM diff 呢?\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/904)\n\n<br/>\n\n### Day93:Vue 组件中写 name 选项有除了搭配 keep-alive 还有其他作用么？你能谈谈你对 keep-alive 了解么？（平时使用和源码实现方面）\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/905)\n\n<br/>\n\n### Day94:说一下 React Hooks 在平时开发中需要注意的问题和原因？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/906)\n\n<br />\n\n### Day95:Promise.all 中任何一个 Promise 出现错误的时候都会执行 reject，导致其它正常返回的数据也无法使用。你有什么解决办法么？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/907)\n\n<br />\n\n### Day96:请能尽可能多的说出 Vue 组件间通信方式？在组件的通信中 EventBus 非常经典，你能手写实现下 EventBus 么？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/908)\n\n<br />\n\n### Day97:请讲一下 react-redux 的实现原理?\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/909)\n\n<br />\n\n### Day98:写出下面代码的执行结果，并解释原因\n\n```js\nObject.prototype.yideng = \"京程一灯\";\nvar a = 123;\na.b = 456;\nconsole.log(a.yideng);\nconsole.log(a.b);\n```\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/910)\n\n<br />\n\n### Day99:React 中 setState 后发生了什么？setState 为什么默认是异步？setState 什么时候是同步？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/912)\n\n<br />\n\n### Day100:哪些方法会触发 react 重新渲染？重新渲染 render 会做些什么？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/913)\n\n<br />\n\n### Day101:Vue v-model 是如何实现的，语法糖实际是什么\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/914)\n\n<br />\n\n### Day102:说一下减少 dom 数量的办法？一次性给你大量的 dom 怎么优化？\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/915)\n\n<br />\n\n### Day103:多个 tab 只对应一个内容框，点击每个 tab 都会请求接口并渲染到内容框，怎么确保频繁点击 tab 但能够确保数据正常显示？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/916)\n\n<br />\n\n### Day104:项目中如何进行异常捕获\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/917)\n\n<br />\n\n### Day105:JavaScript 中如何模拟实现方法的重载,动手实现下\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/918)\n\n<br />\n\n### Day106:Webpack 里面的插件是怎么实现的？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/919)\n\n<br />\n\n### Day107:对虚拟 DOM 的理解？虚拟 DOM 主要做了什么？虚拟 DOM 本身是什么？\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/920)\n\n<br />\n\n### Day108:Webpack 为什么慢，如何进行优化\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/921)\n\n<br />\n\n### Day109:动画性能如何检测\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/922)\n\n<br />\n\n### Day110:客户端缓存有几种方式？浏览器出现 from disk、from memory 的策略是啥\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/923)\n\n<br />\n\n### Day111:原生 JavaScript 实现图片懒加载的思路\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/924)\n\n<br />\n\n### Day112:数组里面有 10 万个数据，取第一个元素和第 10 万个元素的时间相差多少\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/925)\n\n<br />\n\n### Day113:Import 和 CommonJS 在 webpack 打包过程中有什么不同\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/926)\n\n<br />\n\n### Day114:说一下 Webpack 热更新的原理\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/927)\n\n<br />\n\n### Day115:说一下 vue-router 的原理\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/928)\n\n<br />\n\n### Day116:商城的列表页跳转到商品的详情页，详情页数据接口很慢，前端可以怎么优化用户体验？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/929)\n\n<br />\n\n### Day117:React SSR 实现过程？原理是什么？有什么注意事项？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/930)\n\n<br />\n\n### Day118:说一下单点登录实现原理\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/931)\n\n<br />\n\n### Day119:怎样判断一个对象是否是数组，如何处理类数组对象\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/932)\n\n<br />\n\n### Day120:说一下 CORS 的简单请求和复杂请求的区别\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/933)\n\n<br />\n\n### Day121:说一下 在 map 中和 for 中调用异步函数的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/934)\n\n<br />\n\n### Day122:说一下 import 的原理，与 require 有什么不同?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/935)\n\n<br />\n\n### Day123:说下 webpack 的 loader 和 plugin 的区别，都使用过哪些 loader 和 plugin\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/936)\n\n<br />\n\n### Day124:说一下 Https 加密握手的过程\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/937)\n\n<br />\n\n### Day125:按要求实现代码\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/938)\n\n<br />\n\n### Day126:请描述 CSRF、XSS 的基本概念、攻击原理和防御措施？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/939)\n\n<br />\n\n### Day127:按要求完成 mergePromise 代码\n\n```js\nconst timeout = (ms) =>\n  new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve();\n    }, ms);\n  });\nconst ajax1 = () =>\n  timeout(2000).then(() => {\n    console.log(\"1\");\n    return 1;\n  });\nconst ajax2 = () =>\n  timeout(1000).then(() => {\n    console.log(\"2\");\n    return 2;\n  });\nconst ajax3 = () =>\n  timeout(2000).then(() => {\n    console.log(\"3\");\n    return 3;\n  });\nconst mergePromise = (ajaxArray) => {\n  // 1,2,3 done [1,2,3] 此处写代码 请写出ES6、ES3 2中解法\n};\nmergePromise([ajax1, ajax2, ajax3]).then((data) => {\n  console.log(\"done\");\n  console.log(data); // data 为[1,2,3]\n});\n// 执行结果为：1 2 3 done [1,2,3]\n```\n\n公司：阿里\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/940)\n\n<br />\n\n### Day128:说一下 React.Component 和 React.PureComponent 的区别\n\n公司：高德、有赞、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/941)\n\n<br />\n\n### Day129:React 高阶组件 、Render props 和 hooks 有什么区别，为什么要不断迭代\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/942)\n\n<br />\n\n### Day130:什么是深拷贝，和浅拷贝有什么区别，动手实现一个深拷贝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/943)\n\n<br />\n\n### Day131:介绍下 webpack，并说下 Webpack 的构建流程\n\n公司：头条、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/944)\n\n<br />\n\n### Day132:说下 tree-shaking 的原理\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/945)\n\n<br />\n\n### Day133:说一下 mobx 和 redux 有什么区别？\n\n公司：洋葱学院\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/947)\n\n<br />\n\n### Day134:Typescript 里有哪些 JavaScript 没有的类型？\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/948)\n\n<br />\n\n### Day135:说一下单元测试、E2E 测试？它们有什么区别？\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/949)\n\n<br />\n\n### Day136:BFC 是什么？触发 BFC 的条件是什么？有哪些应用场景？\n\n公司：快手、网易、伴鱼\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/950)\n\n<br />\n\n### Day137:说说浏览器渲染流程，分层之后在什么时候合成，什么是重排、重绘，怎样避免\n\n公司：老虎\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/951)\n\n<br />\n\n### Day138:有 1000 个 dom，需要更新其中的 100 个，如何操作才能减少 dom 的操作？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/952)\n\n<br />\n\n### Day139:Vue data 中某一个属性的值发生改变后，视图会立即同步执行重新渲染吗？为什么？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/953)\n\n<br />\n\n### Day140:Fiber 算法原理，相比之前的 stack 算法哪些方面做了优化？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/954)\n\n<br />\n\n### Day141:请描述下 JavaScript 中 Scope、Closure、Prototype 概念，并说明 JavaScript 封装、继承实现原理。\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/955)\n\n<br />\n\n### Day142:请列出目前主流的 JavaScript 模块化实现的技术有哪些？说出它们的区别？\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/956)\n\n<br />\n\n### Day143:说一下 Vue3 与 Vue2 的对比\n\n公司：高德\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/957)\n\n<br />\n\n### Day144:说一下 Vue 单页与多页的区别\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/958)\n\n<br />\n\n### Day145:介绍下 pm2，pm2 依据什么重启服务\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/959)\n\n<br />\n\n### Day146:原生 JavaScript 实现图片懒加载的思路\n\n公司：安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/960)\n\n<br />\n\nDay147:在浏览器执行以下代码，写出打印结果\n\n```js\nconsole.log(\"start\");\nsetTimeout(() => {\n  console.log(\"children2\");\n  Promise.resolve().then(() => {\n    console.log(\"children3\");\n  });\n}, 0);\nnew Promise(function (resolve, reject) {\n  console.log(\"children4\");\n  setTimeout(function () {\n    console.log(\"children5\");\n    resolve(\"children6\");\n  }, 0);\n}).then((res) => {\n  console.log(\"children7\");\n  setTimeout(() => {\n    console.log(res);\n  }, 0);\n});\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/961)\n\n### Day148:请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/962)\n\n<br />\n\n### Day149:一个人每次只能走一层楼梯或者两层楼梯，问走到第 80 层楼梯一共有多少种方法\n\n公司：快手\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/963)\n\n<br />\n\n### Day150:说一下对 React context 的理解\n\n公司：脉脉、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/964)\n\n<br />\n\n### Day151:for..of 和 for...in 是否可以直接遍历对象？为什么？如果不可以有什么解决方案？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/965)\n\n<br />\n\n### Day152:for..in 和 Object.keys 的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/966)\n\n<br />\n\n### Day153:Promise.resolve(obj)，obj 有几种可能\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/967)\n\n<br />\n\n### Day154:给定起止日期，返回中间的所有月份\n\n```js\n// 输入两个字符串 2018-08  2018-12\n// 输出他们中间的月份 [2018-9,2018-10, 2018-11]\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/968)\n\n<br />\n\n### Day155:动手实现一个 repeat 方法\n\n```js\nfunction repeat(func, times, wait) {\n  // TODO\n}\nconst repeatFunc = repeat(alert, 4, 3000);\n// 调用这个 repeatFunc (\"hellworld\")，会alert4次 helloworld, 每次间隔3秒\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/969)\n\n<br />\n\n### Day156:输入一个数字，找到对应的字母\n\n```js\n/*\n 如输入1 返回a\n 输入26返回z\n 输入27返回aa\n 输入28返回ab\n 输入53返回aaa\n*/\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/970)\n\n<br />\n\n### Day157:输入一个数字，找到对应的字母\n\n公司：微软\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/971)\n\n<br />\n\n### Day158:要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName\n\n```js\n/*\n已知对象A = {name: 'sfd', getName: function(){console.log(this.name)}},\n现要求⽤不同⽅式对A进⾏改造实现A.name发⽣变化时⽴即执⾏A.getName\n*/\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/972)\n\n<br />\n\n### Day159:如何把真实 dom 转变为虚拟 dom，代码实现一下\n\n公司：高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/973)\n\n<br />\n\n### Day160:如何把真实 dom 转变为虚拟 dom，代码实现一下\n\n公司：头条、自如\n\n分类：Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/974)\n\n<br />\n\n### Day161:说一下 koa2 和 express 区别\n\n公司：菜鸟网络、海风教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/975)\n\n<br />\n\n### Day162:说一下 RN、Weex、Flutter 的优缺点\n\n公司：腾讯应用宝、寺库\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/976)\n\n<br />\n\n### Day163:什么是微服务，微服务跟单体应用的区别是啥，用微服务有啥好处？\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/977)\n\n<br />\n\n### Day164:说一下 koa-body 的原理\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/978)\n\n<br />\n\n### Day165:Node 如何和 MySQL 进行通信\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/979)\n\n<br />\n\n### Day166:项目中如何处理安全问题\n\n公司：阿里、喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/980)\n\n<br />\n\n### Day167:修改代码不造成死循环\n\n```js\nwhile (1) {\n  console.log(Math.random());\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/981)\n\n<br />\n\n### Day168:写出页面渲染值，并解释为什么？\n\n```js\n<template>\n  <div>{{a.b}}</div>\n</template>\n\n<script>\nexport default {\n  data () {\n    return {\n      a: {}\n    }\n  },\n  created () {\n    this.a.b = 1\n  },\n  mounted () {\n    this.a.b = 2\n  }\n}\n</script>\n```\n\n公司：头条\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/982)\n\n<br />\n\n### Day169:怎么给 Vue 定义全局方法\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/983)\n\n<br />\n\n### Day170:请实现一个 JSON.parse\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/984)\n\n<br />\n\n### Day171:请实现一个 JSON.stringfy\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/987)\n\n<br />\n\n### Day172:用 JavaScript 实现一个标准的排序算法(快排、冒泡、选择排序)，对某个数字数组进行由低到高的排序。\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/988)\n\n<br />\n\n### Day173:说一下 HTTP2.0 多路复⽤有哪些优势？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/989)\n\n<br />\n\n### Day174:versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数\n\n```js\nvar versions = [\"1.45.0\", \"1.5\", \"6\", \"3.3.3.3.3.3.3\"];\n// 要求从小到大排序，注意'1.45'比'1.5'大\nfunction sortVersion(versions) {\n  // TODO\n}\n// => ['1.5','1.45.0','3.3.3.3.3.3','6']\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/990)\n\n<br />\n\n### Day175:从输入 URL 到页面加载全过程\n\n公司：头条、边锋、菜鸟网络、爱范儿、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/991)\n\n<br />\n\n### Day176:怎么理解 to B 和 to C 的业务\n\n公司：顺丰\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/993)\n\n<br />\n\n### Day177:说一下对 React Hook 的理解，它的实现原理，和生命周期有哪些区别？\n\n公司：高德\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/994)\n\n<br />\n\n### Day178:React 挂载的时候有 3 个组件，textComponent、composeComponent、domComponent，说一下它们的区别和关系，Dom 结构发生变化时怎么区分 data 的变化，怎么更新，更新怎么调度，如果更新的时候还有其他任务存在怎么处理\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/995)\n\n<br />\n\n### Day179:Promise.allSettled 了解吗？动手实现一下 Promise.allSettled\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/996)\n\n<br />\n\n### Day180:说一下平时项目是怎么优化的？优化之后是怎么度量的？首屏时间是怎么计算的？\n\n公司：快手\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/997)\n\n<br />\n\n### Day181:说一下组件库设计遵循的一些原则？\n\n公司：编程猫\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/998)\n\n<br />\n\n### Day182:怎么计算组件在视口内出现了几次？IntersectionObserver 怎么使用的？怎么知道一个 DOM 节点出现在视口内？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/999)\n\n<br />\n\n### Day183：有 100 瓶水，其中有一瓶有毒，小白鼠只要尝一点带毒的水 3 天后就会死亡，至少要多少只小白鼠才能在 3 天内鉴别出哪瓶水有毒？\n\n公司：富途\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1000)\n\n<br />\n\n### Day184:写一个方法，把 16 进制颜色转成 10 进制。(#fff => rgb(255,255,255))\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1001)\n\n<br />\n\n### Day185:按要求完成代码\n\n```js\nfunction lottery(whiteList, participant) {\n  // your code\n}\n// whiteList:类型字符串数组,意义是表示从其他系统中计算出来的活跃用户，如果这批用户参与抽奖，则必定让他中奖。长度不超过1万\n// participant:类型字符串数组,意义是表示此次活动中真正参与抽奖的用户，长度约是10万。\n\n// 函数希望从participant返回 2 万个用户，表示中奖用户，优先选取whiteList上的用户，若不在whiteList上，对participant 剩余的随机 选取即可。\n```\n\n公司：斗鱼\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1002)\n\n<br />\n\n### Day186:如何获取 html 元素实际的样式值？\n\n公司：京东\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1003)\n\n<br />\n\n### Day187:浏览器为什么要阻止跨域请求？如何解决跨域？每次跨域请求都需要到达服务端吗？\n\n公司：快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1004)\n\n<br />\n\n### Day188:DOM 树中，如何判断节点 A 是否包含于节点 B?\n\n公司：京东\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1005)\n\n<br />\n\n### Day189 写出代码正确执行结果，并解释原因\n\n```js\nfunction test() {\n  console.log(\"out\");\n}\n(function () {\n  if (false) {\n    function test() {\n      console.log(\"in\");\n    }\n  }\n  test();\n})();\n```\n\n分类：JavaScript\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1006)\n\n<br />\n\n### Day190:怎么获取相交链表的第一个相交点？\n\n公司：斗鱼\n\n分类：算法\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1007)\n\n<br />\n\n### Day191:移动端适配方案具体实现以及对比\n\n公司：头条\n\n分类：css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1008)\n\n<br />\n\n### Day192:将一个按照升序排列的有序数组，转换为一棵高度平衡二叉搜索树。本题中，一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1009)\n\n<br />\n\n### Day193：完善下面函数，实现图片的加载\n\n```js\nfunction createImg(url) {}\ncreateImg(url).then((value) => {\n  document.body.appendChild(value);\n});\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1010)\n\n<br />\n\n### Day194：`var arr =[['A','B'],['a','b'],[1,2]]` 求二维数组的全排列组合 结果：Aa1,Aa2,Ab1,Ab2,Ba1,Ba2,Bb1,Bb2\n\n公司：美团\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1011)\n\n<br />\n\n### Day195:实现一个简单的仓储系统，可以不断转入和转出货物，货物最多有两层子类目，数字代表该子类目转入/转出的数量。转出时不能出现爆仓情况。\n\n```js\n/*\n * cargo 说明：\n * key代表类目/子类目名称\n * value 为 number时，代表这个类目的数量，为object 时，代表下一层货物的集合，最多嵌套两层\n * {\n *  productA:{  // 代表货物的类目名称\n *    a:1, // 1 代表子类目 a 的数量\n *    b:2,\n *    c:{   // c 代表货物的子类名称\n *      c1:1, // c1代表货物的子类名称\n *    }\n *   }，\n *  productB:{\n *      e:6\n *   }\n * }\n *\n * 爆仓情况：如转入 {productA:{a:3,c:1}} 转出 {productA:{a:4}},就会发生子类目a爆仓，此时要返回报错。\n *\n */\n\nclass Depository {\n  /**\n   * @param options\n   */\n  constructor(options) {}\n  // 转入货物\n  transferIn(cargo) {}\n  // 转出货物\n  transferOut(cargo) {}\n}\n```\n\n公司：支付宝\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1012)\n\n<br />\n\n### Day196:有看过 V8 源码吗？ 说下 `v8::Isolate`？\n\n公司：爱奇艺\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1013)\n\n<br />\n\n### Day197:对 git flow 了解吗，应该如何使用\n\n公司：360\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1014)\n\n<br />\n\n### Day198:说一下 IoC 是啥，应用场景是啥？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1015)\n\n<br />\n\n### Day199:你有封装过 axios 吗？主要是封装哪些方面？如何中断 axios 请求？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1016)\n\n<br />\n\n### Day200:Git 的快照是指什么？Git 的工作区域由哪三部分组成？在 Git 中，如何为提交的版本打标签？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1017)\n\n<br />\n\n### Day201:说一下从获得 HTML 到页面渲染的全部流程？为什么栅格线程使用 GPU 计算而不是 CPU 计算？\n\n公司：淘宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1018)\n\n<br />\n\n### Day202:说下 v8 引擎解释执行 js 代码的大致流程\n\n公司：淘宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1019)\n\n<br />\n\n### Day203:Vue-router history 模式部署的时候要注意什么？server 端用 nginx 和 node 时候分别怎么处理？\n\n公司：百度\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1020)\n\n<br />\n\n### Day204:说一下 Vue3 的 Composition API\n\n公司：京东、好未来\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1021)\n\n<br />\n\n### Day205:这里有个约定规则，实现一个方法 decodeStr，输入一个字符串，根据约定规则输出编码结果。约定规则如下：\n\n```js\n//str = \"2[a]1[bc]\", 返回 \"aabc\".\n// str = \"2[e2[d]]\", 返回 \"eddedd\".\n// str = \"3[abc]2[cd]ff\", 返回 \"abcabcabccdcdff\".\n// 可以看出: N[string]，表示string 正好重复 N 次。假设字符串一定是有效正确的字符串；但是你需要考虑其他可能出现的入参错误场景。\n```\n\n公司：腾讯微视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1023)\n\n<br />\n\n### Day206:秒 转换为 时分秒格式，不能使用 js API\n\n公司：京东\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1024)\n\n<br />\n\n### Day207:说一下 OAuth2.0 的登录详细流程\n\n公司：360 金融\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1025)\n\n<br />\n\n### Day208:模拟实现 Object.freeze\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1026)\n\n<br />\n\n### Day209:介绍一下 node 核心模块，并且详细介绍下 Stream\n\n公司：菜鸟网络、自如\n\n分类：Node\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1027)\n\n<br />\n\n### Day210:项目中有没有涉及到 Cluster，说一下你的理解\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1028)\n\n<br />\n\n### Day211:有没有写过 Koa 中间件，说下中间件原理，介绍下自己写过的中间件\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1029)\n\n<br />\n\n### Day212:说下对 AST（Abstract Syntax Tree）抽象语法树的理解？都有哪些用途？\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1031)\n\n<br />\n\n### Day213:如何设计一个 localStorage，保证数据的时效性?\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1032)\n\n<br />\n\n### Day214:写出下面代码的输出结果，并解释为什么？\n\n```js\n//counter.js\nlet counter = 10;\nconst add = () => {\n  console.log(counter);\n};\nexport { counter, add };\n\n//index.js\nadd();\nimport { counter, add } from \"./counter\";\ncounter += 1;\nconsole.log(counter);\n```\n\n公司:快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1033)\n\n<br />\n\n### Day215 下面代码的输出是什么？为什么？\n\n```js\nconst person = { name: \"yd\" };\nObject.defineProperty(person, \"age\", { value: 21 });\nperson.age = 18;\nconsole.log(person);\nconsole.log(Object.keys(person));\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1034)\n\n<br />\n\n### Day216:说一下 escape、encodeURI、encodeURIComponent 有什么区别？具体的使用场景？\n\n公司：水滴筹\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1035)\n\n<br />\n\n### Day217:写出下面代码输出结果，并解释为什么？\n\n```js\nconst value = { number: 10 };\nlet number = 2;\nconst multiply = (x = { ...value }, y = number) => {\n  y++;\n  console.log((x.number *= y));\n};\n\nmultiply();\nmultiply();\nmultiply(value, number);\nmultiply(value, number);\n```\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1036)\n\n<br />\n\n### Day218:说下下面两段代码执行情况\n\n```js\n// 代码片段一：是否存在堆栈溢出错误?\nfunction foo() {\n  setTimeout(foo, 0);\n}\nfoo();\n\n// 代码片段二:如果在控制台中运行以下函数，页面(选项卡)的 UI 是否仍然响应?\nfunction foo() {\n  return Promise.resolve().then(foo);\n}\n```\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1037)\n\n<br />\n\n### Day219:说下 prototype 和 `__proto__`的关系\n\n分类：JavaScript\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1038)\n\n<br />\n\n### Day220:了解函数式编程中的 compose 吗？动手实现一下？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1039)\n\n<br />\n\n### Day221:说下 Webpack Runtime 和 Manifest 代码的作用？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1040)\n\n<br />\n\n### Day222:说一下 ES6 对 Object 类型做了哪些优化更新?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1041)\n\n<br />\n\n### Day223:使用队列来实现击鼓传花\n\n```js\n击鼓传花的规则:\n\n几个朋友一起玩一个游戏, 围成一圈, 开始数数（数数时数字都是挨着的，第一个人数1，之后的人数2）, 数到某个数字的人自动淘汰。汰的人后面再从1开始数，重复上面的游戏，直到就剩下一个人，请问剩下了谁\n\n// 测试例子\nvar names = [\"John\", \"Jack\", \"Camila\", \"Ingrid\", \"Carl\"];\nvar endName = passGame(names, 8); // 数到 8 的人淘汰\nconsole.log(\"最终留下:\" + endName); // 'john'\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1042)\n\n<br />\n\n### Day224:多种方式实现圆形可点击区域(至少三种)\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1043)\n\n<br />\n\n### Day225:介绍 instanceof 原理并实现\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1044)\n\n<br />\n\n### Day226:用 reduce 实现 map 方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1045)\n\n<br />\n\n### Day227:Webpack 如果使用了 hash 命名，是否每次都会重新生成 hash?简单说下 Webpack 的几种 hash 策略？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1046)\n\n<br />\n\n### Day228:Token 一般是存放在哪里?Token 放在 cookie 和放在 localStorage、sessionStorage 中有什么不同？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1047)\n\n<br />\n\n### Day229:说一下网页扫码登录的原理\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1048)\n\n<br />\n\n### Day230:说一下 Vue 开发如何针对搜索引擎做 SEO 优化\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1049)\n\n<br />\n\n### Day231:说下你的 vue 项目目录结构，如果是大型项目你该怎么划分结构和划分组件呢？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1050)\n\n<br />\n\n### Day232:详细说一下 JSON.stringify 的一些特性？和遍历相比，哪个性能高?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1051)\n\n<br />\n\n### Day233:Vuex 的 action 和 mutation 的特性是什么？有什么区别？Vuex 怎么知道 state 是通过 mutation 修改还是外部直接修改的？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1052)\n\n<br />\n\n### Day234:Vue-cli 默认是单页面的，如果要开发多页面应该怎么办？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1053)\n\n<br />\n\n### Day235:动手实现一下数组 Reduce 方法的 polyfill\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1054)\n\n<br />\n\n\n### Day236:了解 HTTP3.0 吗？简要说一下 HTTP 的一个发展历程？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1055)\n\n<br />\n\n### Day237:说一下什么是运营商劫持？有什么预防措施？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1056)\n\n<br />\n\n### Day238:请介绍一下装饰者模式，并实现\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1057)\n\n<br />\n\n### Day239:按要求实现 go 函数\n\n```js\n// 示例\ngo(\"l\"); //gol\ngo()(\"l\"); //gool\ngo()()()(\"l\"); //返回goool\n```\n\n分类：JavaScript\n\n公司：深信服\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1058)\n\n<br />\n\n### Day240:写出输出值并解释为什么？\n\n```js\nlet a = 1,\n  b = 2,\n  head = { next: { next: 1 } };\n[a, b] = [b, a];\n[head.next, head.next.next] = [head.next.next, head.next];\nconsole.log(a, b, head);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1059)\n\n<br />\n\n### Day241:说一下深拷贝如何解决循环引用问题？\n\n公司：极光推送\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1060)\n\n<br />\n\n### Day242:实现一个函数 findLastIndex(), 返回指定数在“有序”数组中最后一次出现位置的索引。如 `findLastIndex([1,2,3,3,3,4,5], 3)`, 返回 4。时间复杂度是多少？什么情况下时间复杂度最高？\n\n公司：快手\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1061)\n\n<br />\n\n### Day243:WebWorker 的缺点是什么？在 worker 线程怎么获取主线程上下文？解决卡顿的问题除了使用 WebWorker 还有其他的解决方案吗？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1062)\n\n<br />\n\n### Day244:虚拟列表是什么？说一下它的实现原理？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1063)\n\n<br />\n\n### Day245:说一下请求是异步的为什么会造成阻塞？\n\n公司：易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1064)\n\n<br />\n\n### Day246:详细说一下你对 cookie、session、token 的理解\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1065)\n\n<br />\n\n### Day247:说一下对纯函数的理解\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1066)\n\n<br />\n\n### Day248:说一下 MySQL 和 MongoDB 区别？MongoDB 有哪些缺点和优点？\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1067)\n\n<br />\n\n### Day249:说一下 Generator 的实现原理\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1068)\n\n<br />\n\n### Day250:说一下 let、const 的实现，使用 ES5 模拟实现一下\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1069)\n\n<br />\n\n### Day251:详细说一下对 JavaScript 执行上下文的理解\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1070)\n\n<br />\n\n### Day252:说一下递归和迭代的区别是什么，各有什么优缺点？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1071)\n\n<br />\n\n### Day253:说一下 JavaScript 的宿主对象和原生对象的区别？为什么扩展 JavaScript 内置对象不是好的做法？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1072)\n\n<br />\n\n### Day254:请解释下面代码为什么不能用作 IIFE？需要作出哪些修改才能使其成为 IIFE？\n\n```js\n// 代码一\nfunction (){}()\n// 代码二\nfunction foo(){}()\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1073)\n\n<br />\n\n### Day255:将输入的数组组装成一颗树状的数据结构，要求程序具有侦测错误输入的能力\n\n```js\nlet dataArr = [\n  { id: 1, name: \"i1\" },\n  { id: 2, name: \"i2\", parentId: 1 },\n  { id: 4, name: \"i4\", parentId: 3 },\n  { id: 3, name: \"i3\", parentId: 2 },\n  { id: 8, name: \"i8\", parentId: 7 },\n];\n```\n\n公司：阿里\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1074)\n\n<br />\n\n### Day256:将二维数组转成一维数组的方法有哪些？\n\n分类：JavaScript\n\n公司：微店\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1075)\n\n<br />\n\n### Day257:在不改变原数组的前提下，添加或删除某个元素，获得一个新数组(多种方式实现)\n\n分类：JavaScript\n\n公司：有赞\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1076)\n\n<br />\n\n### Day258:聊聊你对 Orinoco 认知\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1077)\n\n<br />\n\n### Day259:按要求实现代码\n\n```js\nvar items = [{ name: \"item1\" }, { name: \"item2\" }];\nvar str = '<div ali-for=\"item in items\">{{item.name}}<div>';\n\nParseDom(str);\n// <div>item1</div><div>item2</div>\n\nfunction ParseDom(str) {\n  // your code\n}\n```\n\n分类：JavaScript\n\n公司：阿里\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1078)\n\n<br />\n\n### Day260:说下什么是 Reflect？有什么作用？你对元编程是如何理解的？有没有实际应用的例子？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1079)\n\n<br />\n\n\n### Day261:说一下 webpack4.x 模块化加载原理?(CommonJS、ES6 module、动态加载)\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1080)\n\n<br />\n\n### Day262:为什么 WeakMap 和 WeakSet 的键只能使用对象？在什么场景下使用？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1081)\n\n<br />\n\n### Day263:请写出以下代码结果，并解释为什么？\n\n```js\nlet { ...yideng } = Object.create({ x: 1 });\nconsole.log(yideng.x);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1082)\n\n<br />\n\n### Day264:请实现 uncurring 完成函数柯里化\n\n```js\nvar yideng = Array.prototype.push.uncurring();\n(function () {\n  yideng(arguments, 4);\n  console.log(arguments); // [1,2,3,4]\n})(1, 2, 3);\n```\n\n分类：JavaScript\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1084)\n\n<br />\n\n### Day265:了解过 RPC 吗，简单说一下?\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1085)\n\n<br />\n\n### Day266:写出下面代码结果，并解释为什么？\n\n```js\nfunction test() {}\nconsole.log(test.prototype.constructor.constructor);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1087)\n\n<br />\n\n### Day267:请写出执行结果,并解释原因\n\n```js\nvar yideng = {\n  n: 1,\n};\nyideng.x = yideng = {\n  n: 2,\n};\nconsole.log(yideng.x);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1088)\n\n<br />\n\n### Day268:请修改代码跳出死循环\n\n```js\nwhile (1) {\n  switch (\"yideng\") {\n    case \"yideng\":\n    // 禁止只写一句break;\n  }\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1089)\n\n<br />\n\n### Day269:给你两个有序整数数组 nums1 和 nums2，请你将 nums2 合并到 nums1 中，使 nums1 成为一个有序数组。\n\n```js\n// 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 你可以假设 nums1 有足够的空间（空间大小大于或等于 m + n）来保存 nums2 中的元素。\n\n// 输入:\nvar nums1 = [1, 2, 3],\n  m = 3;\nvar nums2 = [2, 5, 6],\n  n = 3;\n// 输出: [1,2,2,3,5,6]\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1090)\n\n<br />\n\n### Day270:给你一个包含 n 个整数的数组 nums，判断 nums 中是否存在三个元素 a，b，c ，使得 a + b + c = 0 ？请你找出所有满足条件且不重复的三元组。\n\n```js\n// 示例\n给定数组 nums = [-1, 0, 1, 2, -1, -4]， 满足要求的三元组集合为： [ [-1, 0, 1], [-1, -1, 2] ]\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1091)\n\n<br />\n\n### Day271:给定一个字符串 s，最多删除一个字符。判断是否能成为回文字符串。\n\n```js\n/*\n输入: \"aba\"\n输出: True\n输入: \"abca\"\n输出: True\n注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。\n*/\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1092)\n\n<br />\n\n### Day272:设计一个支持两种操作的数据结构\n\n```js\naddWord(word) // 添加字符串\nsearch(word)   // 返回布尔值，是否存在\n//search可以搜索文字或正则表达式字符串，字符串只包含字母 . 或 a-z 。\n// . 可以表示任何一个字母。\n\n// 示例\naddWord(\"bad\")\naddWord(\"dad\")\naddWord(\"mad\")\nsearch(\"pad\") -> false\nsearch(\"bad\") -> true\nsearch(\".ad\") -> true\nsearch(\"b..\") -> true\n// 可以假设所有单词都是由小写字母 a-z 组成的。\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1093)\n\n<br />\n\n### Day273:写出执行结果，并解释为什么？\n\n```html\n<script>\n  // 使用未定义的变量\n  yideng;\n  console.log(1);\n</script>\n<script>\n  console.log(2);\n</script>\n```\n\n分类：JavaScript\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1094)\n\n<br />\n\n### Day274:设计 AutoComplete 组件(又叫搜索组件、自动补全组件等)时，需要考虑什么问题？\n\n公司：头条\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1095)\n\n<br />\n\n### Day275:输入两个递增排序的链表，合并这两个链表并使新链表中的节点仍然是递增排序的。\n\n```js\n//输入：1->2->4, 1->3->4\n//输出：1->1->2->3->4->4\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1096)\n\n<br />\n\n### Day276:给定一个排序链表，删除所有含有重复数字的结点，只保留原始链表中没有重复出现的数字。\n\n```js\n/* \n输入: 1->2->3->3->4->4->5\n输出: 1->2->5\n\n输入: 1->1->1->2->3\n输出: 2->3\n*/\n```\n\n分类：算法\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1097)\n\n<br />\n\n### Day277:给定一个链表，删除链表的倒数第 n 个结点，并且返回链表的头结点。\n\n```js\n// 给定一个链表: 1->2->3->4->5, 和 n = 2.\n// 当删除了倒数第二个结点后，链表变为 1->2->3->5.\n// 说明：给定的n保证是有效的\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1098)\n\n<br />\n\n### Day278:定义一个函数，输入一个链表的头结点，反转该链表并输出反转后链表的头结点。\n\n```js\n//输入: 1->2->3->4->5->NULL\n//输出: 5->4->3->2->1->NULL\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1099)\n\n<br />\n\n### Day279:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。\n\n```js\n// 说明：1 ≤ m ≤ n ≤ 链表长度。\n// 示例：\n// 输入: 1->2->3->4->5->NULL, m = 2, n = 4\n// 输出: 1->4->3->2->5->NULL\n```\n\n分类：算法 \n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1100)\n\n<br />\n\n### Day280:给定一个链表，如何判断链表是否有环？\n\n```js\n// 如果链表中有某个节点，可以通过连续跟踪 next 指针再次到达，则链表中存在环。\n// 如果链表中存在环，则返回 true 。 否则，返回 false 。\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1101)\n\n<br />\n\n### Day281:给定一个链表，返回链表开始入环的第一个结点。 如果链表无环，则返回 null。\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1102)\n\n<br />\n\n### Day282:根据每日气温列表，请重新生成一个列表，对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高，请在该位置用 0 来代替。\n\n```js\n// 例如，给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73]，你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。\n// 提示：气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度，都是在 [30, 100] 范围内的整数。\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1103)\n\n<br />\n\n### Day283:设计一个支持 push ，pop ，top 操作，并能在常数时间内检索到最小元素的栈。\n\n```js\npush(x);//将元素 x 推入栈中。\npop(); // 删除栈顶元素\ntop(); // 获取栈顶元素\ngetMin();// 检索栈中最小的元素\n\n// 示例\nMinStack minStack = new MinStack();\nminStack.push(-2);\nminStack.push(0);\nminStack.push(-3);\nminStack.getMin();   // --> 返回 -3\nminStack.pop();\nminStack.top();      // --> 返回 0\nminStack.getMin();   // --> 返回 -2\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1104)\n\n<br />\n\n### Day284:如何用栈实现一个队列\n\n```js\npush(x) // 将一个元素放入队列的尾部。\npop()  // 队列首部移除元素。\npeek()  // 返回队列首部的元素。\nempty() // 返回队列是否为空。\n\n// 示例\nMyQueue queue = new MyQueue();\nqueue.push(1);\nqueue.push(2);\nqueue.peek(); // 返回 1\nqueue.pop(); // 返回 1\nqueue.empty(); // 返回 false\n\n// 说明\n// 只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。\n// 假设所有操作都是有效的 （例如，一个空的队列不会调用 pop 或者 peek 操作）。\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1105)\n\n<br />\n\n### Day285:给定一个数组 nums 和滑动窗口的大小 k，请找出所有滑动窗口里的最大值。\n\n```js\n// 示例\n// 输入:\n// nums = [1, 3, -1, -3, 5, 3, 6, 7], k = 3;\n// 输出:\n// [3, 3, 5, 5, 6, 7];\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1106)\n\n<br />\n\n### Day286：给定一个没有重复数字的序列，返回其所有可能的全排列。\n\n```js\n/**\n示例\n输入: [1,2,3]\n输出: [\n  [1,2,3],\n  [1,3,2],\n  [2,1,3],\n  [2,3,1],\n  [3,1,2],\n  [3,2,1]\n]\n*/\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1107)\n\n<br />\n\n### Day287:给定一组不含重复元素的整数数组 nums，返回该数组所有可能的子集（幂集）。说明：解集不能包含重复的子集。\n\n```js\n// 输入： nums = [1,2,3]\n/* \n输出\n[\n  [3],\n  [1],\n  [2],\n  [1,2,3],\n  [1,3],\n  [2,3],\n  [1,2],\n  []\n]\n*/\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1108)\n\n<br />\n\n### Day288:给定两个整数 n 和 k，返回 1 ... n 中所有可能的 k 个数的组合。\n\n```js\n/* \n输入：n = 4,k = 2;\n输出：\n[\n  [2,4],\n  [3,4],\n  [2,3],\n  [1,2],\n  [1,3],\n  [1,4],\n]\n */\n```\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1109)\n\n<br />\n\n### Day289:项目中如何应用数据结构?\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1110)\n\n<br />\n\n### Day290:node 如何做错误监控？如何生成日志？日志等级如何划分？\n\n公司：自如\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1111)\n\n<br />\n\n### Day291:说一下 JavaScript 的执行流程\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1112)\n\n<br />\n\n### Day292:如何设计状态树\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1113)\n\n<br />\n\n### Day293:说下在项目开发你是怎么组织 CSS 的？（Webpack）\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1115)\n\n<br />\n\n### Day294：说一下进程和线程的区别？\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1116)\n\n<br />\n\n### Day295:详细描述一个 http 请求从发起请求到收到响应的全部过程(越细越好)\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1117)\n\n<br />\n\n### Day296:下面代码是否会导致堆栈溢出错误\n\n```js\nfunction foo() {\n  setTimeout(foo, 0);\n}\nfoo();\n// 是否存在堆栈溢出错误\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1118)\n\n<br />\n\n### Day297:说下 Node 文件查找的优先级以及 Require 方法的文件查找策略\n\n分类：Node\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1119)\n\n<br />\n\n### Day298:手写一个 Ajax\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1120)\n\n<br />\n\n### Day299:说一下什么是功能检测（feature detection）、功能推断（feature inference）、UA 字符串？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1122)\n\n<br />\n\n### Day300 Get 请求传参长度存在限制，是 HTTP 协议限制的吗？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1124)\n\n<br />\n\n### Day301:鼠标滚动的时候，会触发很多次事件，你是如何解决的？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1125)\n\n<br />\n\n### Day302:实现 10 进制转换为 36 进制\n\n分类：JavaScript\n\n公司：头条\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1126)\n\n<br />\n\n### Day303:什么时候用 TCP，什么时候适合 UDP？\n\n分类：网络&安全\n\n公司：腾讯\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1127)\n\n<br />\n\n### Day304:什么情况下会触发 options 请求\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1128)\n\n<br />\n\n### Day305:说一下 Taro 编译的原理？\n\n分类：其它\n\n公司：阿里\n\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1129)\n\n<br />\n\n### Day306:Vue2.x 和 Vue3.x 渲染器的 diff 算法分别说一下？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1130)\n\n<br />\n\n### Day307:如果一个页面突然出现了一段广告，可能是什么原因，怎么解决?\n\n分类：网络&安全\n\n公司：腾讯\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1131)\n\n<br />\n\n### Day308:说下你对 ESLint 的了解？ 如何使用？它的工作原理？\n\n分类：工程化\n\n公司：美团 \n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1132)\n\n<br />\n\n### Day309:说下你对 Node.js 支持高并发的理解？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1133)\n\n<br />\n\n### Day310:了解 WebSocket 吗？WebSocket 是如何进行握手的？\n\n公司：腾讯\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1134)\n\n<br />\n\n### Day311:介绍下 npm 模块安装机制？输入 npm install 命令敲下回车后它的一个执行流程是怎样的？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1135)\n\n<br />\n\n### Day312:接口怎么防刷\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1136)\n\n<br />\n\n### Day313:说下你对前端工程化的理解\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1138)\n\n<br />\n\n### Day314:ES6 代码转成 ES5 代码的实现思路是什么？大致说一下 babel 原理?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1139)\n\n<br />\n\n### Day315:请说说你对 Sparkplug 的理解？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1140)\n\n<br />\n\n### Day316:说一下实现骨架屏的方案？具体思路?\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1141)\n\n<br />\n\n### Day317:完成一个转换函数，将数字转换成对应的大写字母，满足下面的对应关系\n\n```js\n// 1 => A\n// 2 => B\n// 3 => C\n// ...\n// 26 => Z\n// 27 => AA\n// 28 => AB\n// ...\n// 52 => AZ\n// 53 => BA\n// 54 => BB\n\n// 实现下方函数\nfunction convert(){\n    // todo\n}\n// 测试代码\nconst output1 = convert(1);\nconsole.log(output1); //A\nconst output2 = convert(26);\nconsole.log(output2);// Z\n```\n\n公司：腾讯微视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1142)\n\n<br />\n\n### Day318:WebSocket 如何断开重连\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1143)\n\n<br />\n\n### Day319:为什么说利用多个域名来存储网站资源会更有效？\n\n分类：网络&安全\n\n公司：字节跳动\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1145)\n\n<br />\n\n### Day320:文件上传如何实现？除了 input 还有哪些别的方法？\n\n公司：字节跳动\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1146)\n\n<br />\n\n### Day321:请设计一个方案：有 a、b、c 三个 npm 插件，它们会经常更新，在前端项目 npm run start 启动后，要求 a、b、c 三个 npm 插件自动更新到最新版本\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1147)\n\n<br />\n\n### Day322:手写发布订阅模式\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1148)\n\n<br />\n\n### Day323:大数计算如何实现\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1149)\n\n<br />\n\n### Day324:说一下网络通信中引入滑动窗口的作用，它的机制原理是怎样的？\n\n公司：淘宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1150)\n\n<br />\n\n### Day325:请求在客户端报 413 是什么错误，怎么解决？\n\n公司：淘宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1152)\n\n<br />\n\n### Day326:请用 ES5 模拟实现 Number 的 isInteger 方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1154)\n\n<br />\n\n### Day327:谈一下微信小程序的架构以及为什么要使用双线程？\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1155)\n\n<br />\n\n### Day328:给定一个数组，按找到每个元素右侧第一个比它大的数字，没有的话返回-1 规则返回一个数组\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1156)\n\n<br />\n\n### Day329:说一说 promise，有几个状态，通过 catch 捕获到 reject 之后，在 catch 后面还能继续执行 then 方法嘛，如果能执行执行的是第几个回调函数?\n\n公司：伴鱼、喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1157)\n\n<br />\n\n\n### Day330:为什么 React useState 要使用数组而不是对象?\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1160)\n\n<br />\n\n\n### Day331:说一下对称加密和非对称加密的区别和用处？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1161)\n\n<br />\n\n\n### Day332:手写代码实现`kuai-shou-front-end=>KuaiShouFrontEnd`\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1162)\n\n<br />\n\n### Day333:用尽量短的代码实现一个 array 的链式操作，将数组中的大于 10 的值进行一个累加\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1163)\n\n<br />\n\n### Day334:按要求实现 rightView 函数\n\n```js\nfunction TreeNode(val){\n  this.val = val;\n  this.left = null;\n  this.right = null;\n}\nfunction rightView(root){\n  // 请你实现\n}\n// => [1,4,3]\n     1      => 1\n   2   4    => 4\n 7   3      => 3\n```\n\n公司：头条\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1164)\n\n<br />\n\n### Day335：动手实现一下 Node utils 模块中的 Promisify 函数\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1165)\n\n<br />\n\n### Day336:说一下 jQuery ajax、axios、fetch 的区别\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1166)\n\n<br />\n\n### Day337:输入一个日期,返回几秒前、几小时前、几天前、几月前\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1167)\n\n<br />\n\n### Day338:说一下你对函数式编程的理解\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1168)\n\n<br />\n\n\n### Day339：说出前端框架设计模式(MVVM 或 MVP 又或 MVC)的含义以及原理\n\n公司：玄武科技\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1169)\n\n<br />\n\n### Day340:动手实现一个简单的 mvvm 模型\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1170)\n\n<br />\n\n### Day341:说下 LRU 算法的原理并手写实现？一般有哪些优化方式？\n\n公司：字节跳动、京东\n\n分类：算法\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1171)\n\n<br />\n\n### Day342:有没有搭建过 CI/CD？说下 CI/CD 搭建的流程\n\n公司：爱奇艺\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1172)\n\n<br />\n\n### Day343:说一下 TypeScript 中 Partial、Pick、Record 作用?\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1174)\n\n<br />\n\n### Day344:封装公共组件需要注意什么？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1175)\n\n<br />\n\n### Day345:Prerender 预渲染是什么原理？预渲染 prerender-spa-plugin 能详细讲讲吗？\n\n公司：盒马\n\n分类：Vue、React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1176)\n\n<br />\n\n### Day346: Node 中怎么开启一个子线程\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1177)\n\n<br />\n\n### Day347:说一下小程序页面的通讯方式\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1178)\n\n<br />\n\n### Day348:class 的继承和 prototype 继承 是完全一样的吗？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1179)\n\n<br />\n\n### Day349:说一下 vite 和 webpack 对比，为什么 vite 在 dev 模式下运行速度快很多？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1180)\n\n<br />\n\n### Day350:Reflect.ownKeys 与 Object.keys 的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1181)\n\n<br />\n\n### Day351:说一下对事件流的理解,如果 addEventListener 的第三个参数设置为 true 会发生什么?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1182)\n\n<br />\n\n### Day352：React Hooks 的 useState 相对于有状态组件 state 区别是什么？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1183)\n\n<br />\n\n### Day353:React Hooks 解决了什么问题？其原理是什么(以 useEffect 为例)？useMemo 和 useCallback 差别？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1184)\n\n<br />\n\n### Day354:模拟实现 Symbol\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1185)\n\n<br />\n\n### Day355:下面代码在 vue 中输出什么？为什么?\n\n```js\nfor (let i = 0; i < 10; i++) {\n  this.a = i;\n  this.$nextTick(() => {\n    console.log(this.a);\n  });\n}\n```\n\n公司：头条\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1186)\n\n<br />\n\n### Day356:说说 Context 有哪些属性？怎么使用 Context 开发组件？除了实例的属性可以获取 Context 外哪些地方还能直接获取 Context ？为什么 React 并不推荐我们优先考虑使用 Context？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1187)\n\n<br />\n\n### Day357:说一下你觉得的 vue 开发规范有哪些？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1188)\n\n<br />\n\n### Day358:说一下你对 vue keep-alive 的理解？以及使用过程需要注意的地方？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1190)\n\n<br />\n\n### Day359:你知道 Vue 的模板语法用的是哪个 web 模板引擎的吗？说说你对这模板引擎的理解?\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1191)\n\n<br />\n\n### Day360:Vue2.x 为什么要求组件模板只能有一个根元素？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1192)\n\n<br />\n\n### Day361:Vue 切换路由时，需要保存草稿的功能，怎么实现？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1193)\n\n<br />\n\n### Day362:说一下 Vue 中 EventBus 的使用？在使用过程中有没有遇到重复触发的问题？如何解决的？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1195)\n\n<br />\n\n### Day363:举例说明 React 的插槽有哪些运用场景？你有用过 React 的插槽(Portals)吗？怎么用？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1196)\n\n<br />\n\n### Day364：为什么说 React 中 props 是只读的？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1197)\n\n<br />\n\n### Day365:如何解决 Vue 打包 vendor 过大的问题？Webpack 打包 vue 速度慢怎么办？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1199)\n\n<br />\n\n### Day366:什么是 CSP?\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1200)\n\n<br />\n\n### Day367:说下 URL 和 URI 的区别？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1201)\n\n<br />\n\n### Day368:说一下你对 Get 请求传参长度限制的理解？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1202)\n\n<br />\n\n### Day369:说下你对 Reflect 的理解？为什么会有 Reflect 的出现？Proxy 也简单的说一下？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1203)\n\n<br />\n\n### Day370:为什么使用 setTimeout 实现 setInterval？怎么模拟？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1204)\n\n<br />\n\n### Day371:使用 Symbol 函数都有哪些要注意的点？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1205)\n\n<br />\n\n### Day372:说一下你对 Get 和 Post 请求在缓存方面理解\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1206)\n\n<br />\n\n### Day373：说下 Node 中 require 模块引入的查找方式？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1207)\n\n<br />\n\n### Day374:说一下开发中常用的几种 Content-Type ？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1208)\n\n<br />\n\n### Day375:setTimeout/setInterval 实现倒计时如何解决时间偏差的问题?\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1209)\n\n<br />\n\n### Day376:说一下你对进程和线程的了解？Node 中进程间是如何进行通信的？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1210)\n\n<br />\n\n### Day377:说一下你了解的 WebSocket 鉴权授权方案？\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1211)\n\n<br />\n\n### Day378:说一下什么是 Http 协议无状态?怎么解决 Http 协议无状态?\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1213)\n\n<br />\n\n### Day379:如果让你来实现一个前端监控系统，应该考虑什么？如何去实现？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1214)\n\n<br />\n\n### Day380:实现一个系统，统计前端页面性能、页面 JS 报错、用户操作行为、PV/UV、用户设备等消息，并进行必要的监控报警。方案如何设计，用什么技术点，什么样的系统架构，难点会在哪里？\n\n公司：阿里云\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1215)\n\n<br />\n\n### Day381:说一下 JavaScript 严格模式下有哪些不同？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1216)\n\n<br />\n\n\n### Day382:说一下 setTimeout 和 setInterval 的区别，包含内存方面的分析？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1217)\n\n<br />\n\n### Day383:说下 React 的 useEffect、useCallback、useMemo\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1218)\n\n<br />\n\n### Day384:JavaScript 中如何实现一个类？怎么实例化这个类？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1219)\n\n<br />\n\n### Day385:在一个 DOM 上同时绑定两个点击事件：一个用捕获，一个用冒泡。事件会执行几次？先执行冒泡还是捕获？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1220)\n\n<br />\n\n### Day386:写一个通用的事件侦听器函数\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview-Planet/issues/1221)\n\n<br />\n\n"
  },
  {
    "path": "summarry/html.md",
    "content": "# Html题目汇总\n\n- [meta 元素都有什么](#meta-元素都有什么)\n- [script 的 async 跟 defer 的区别？](#script-的-async-跟-defer-的区别)\n- [知道语义化吗？说说你理解的语义化，如果是你，平时会怎么做来保证语义化？说说你了解的 HTML5 语义化标签？](#知道语义化吗说说你理解的语义化如果是你平时会怎么做来保证语义化说说你了解的-html5-语义化标签)\n- [a 标签默认事件禁掉之后做了什么才实现了跳转](#a-标签默认事件禁掉之后做了什么才实现了跳转)\n- [网站 SEO 怎么处理](#网站-seo-怎么处理)\n- [html 标签 b 和 strong 的区别](#html-标签-b-和-strong-的区别)\n- [说一下减少 dom 数量的办法？一次性给你大量的 dom 怎么优化？](#说一下减少-dom-数量的办法一次性给你大量的-dom-怎么优化)\n- [Html5 有哪些新特性？如何处理 Html5 新标签的浏览器兼容问题？如何区分 Html 和 Html5?](#html5-有哪些新特性如何处理-html5-新标签的浏览器兼容问题如何区分-html-和-html5)\n- [请说明 Html 布局元素的分类有哪些？并描述每种布局元素的应用场景](#请说明-html-布局元素的分类有哪些并描述每种布局元素的应用场景)\n\n### meta 元素都有什么\n\n公司：完美世界\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/364)\n\n<br/>\n\n### script 的 async 跟 defer 的区别？\n\n公司：虎扑\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/401)\n\n<br/>\n\n### 知道语义化吗？说说你理解的语义化，如果是你，平时会怎么做来保证语义化？说说你了解的 HTML5 语义化标签？\n\n公司：蘑菇街\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/379)\n\n<br/>\n\n### a 标签默认事件禁掉之后做了什么才实现了跳转\n\n公司：滴滴\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/519)\n\n<br/>\n\n### 网站 SEO 怎么处理\n\n公司：喜马拉雅\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/439)\n\n<br/>\n\n### html 标签 b 和 strong 的区别\n\n公司：蘑菇街\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/766)\n\n<br/>\n\n### 说一下减少 dom 数量的办法？一次性给你大量的 dom 怎么优化？\n\n公司：58\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/706)\n\n<br/>\n\n### Html5 有哪些新特性？如何处理 Html5 新标签的浏览器兼容问题？如何区分 Html 和 Html5?\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/676)\n\n<br/>\n\n### 请说明 Html 布局元素的分类有哪些？并描述每种布局元素的应用场景\n\n公司：玄武科技\n\n分类：Html\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/843)\n\n<br/>\n\n"
  },
  {
    "path": "summarry/http.md",
    "content": "# 网络&与安全汇总\n\n- [介绍chrome 浏览器的几个版本](#介绍chrome-浏览器的几个版本)\n- [说一下 Http 缓存策略，有什么区别，分别解决了什么问题](#说一下-http-缓存策略有什么区别分别解决了什么问题)\n- [前端安全、中间人攻击](#前端安全中间人攻击)\n- [V8 机制讲解](#v8-机制讲解)\n- [CDN 是什么？描述下 CDN 原理？为什么要用 CDN?](#cdn-是什么描述下-cdn-原理为什么要用-cdn)\n- [PWA 是什么？对 PWA 有什么了解](#pwa-是什么对-pwa-有什么了解)\n- [说一下浏览器解析 Html 文件的过程](#说一下浏览器解析-html-文件的过程)\n- [从输入 URL 到页面加载全过程](#从输入-url-到页面加载全过程)\n- [DNS 解析的具体过程](#dns-解析的具体过程)\n- [常见的 http 请求头都有哪些，以及它们的作用](#常见的-http-请求头都有哪些以及它们的作用)\n- [encoding 头都有哪些编码方式](#encoding-头都有哪些编码方式)\n- [utf-8 和 asc 码有什么区别](#utf-8-和-asc-码有什么区别)\n- [tcp 和 udp 有什么区别？tcp 怎样确保数据正确性？tcp 头包含什么？tcp 属于那一层？](#tcp-和-udp-有什么区别tcp-怎样确保数据正确性tcp-头包含什么tcp-属于那一层)\n- [传输层和网络层分别负责什么，端口在什么层标记](#传输层和网络层分别负责什么端口在什么层标记)\n- [介绍下 Https，和 http 的区别是什么？https 为什么比 http 安全？如何进行配置？](#介绍下-https和-http-的区别是什么https-为什么比-http-安全如何进行配置)\n- [说一下加密握手的过程](#说一下加密握手的过程)\n- [对称加密和非对称加密的区别和用处](#对称加密和非对称加密的区别和用处)\n- [浏览器都有哪些进程，渲染进程中都有什么线程](#浏览器都有哪些进程渲染进程中都有什么线程)\n- [说说浏览器渲染流程，分层之后在什么时候合成，什么是重排、重绘，怎样避免](#说说浏览器渲染流程分层之后在什么时候合成什么是重排重绘怎样避免)\n- [什么是同源策略？什么是跨域？都有哪些方式会造成跨域？解决跨域都有什么手段？](#什么是同源策略什么是跨域都有哪些方式会造成跨域解决跨域都有什么手段)\n- [什么是 CORS，CORS 需要前端配置还是后端配置？](#什么是-corscors-需要前端配置还是后端配置)\n- [Http1 和 Http2 有什么区别，和 http1.1 相比，http2 都有什么特性](#http1-和-http2-有什么区别和-http11-相比http2-都有什么特性)\n- [说一下 etag 和 lastmodify 的区别](#说一下-etag-和-lastmodify-的区别)\n- [强缓存都有哪些方法来控制](#强缓存都有哪些方法来控制)\n- [协商缓存都有哪些参数](#协商缓存都有哪些参数)\n- [请求是异步的为什么会造成阻塞](#请求是异步的为什么会造成阻塞)\n- [CDN 有哪些优化静态资源加载速度的机制](#cdn-有哪些优化静态资源加载速度的机制)\n- [说一下 Nginx 的缓存策略，强缓存与弱缓存的区别，二者的使用场景](#说一下-nginx-的缓存策略强缓存与弱缓存的区别二者的使用场景)\n- [请描述 CSRF、XSS 的基本概念、攻击原理和防御措施？](#请描述-csrfxss-的基本概念攻击原理和防御措施)\n- [请描述提升页面性能的方式有哪些，如何进行首页加载优化](#请描述提升页面性能的方式有哪些如何进行首页加载优化)\n- [Http 报文的请求会有几个部分？请写出 HTTP 报文的组成部分](#http-报文的请求会有几个部分请写出-http-报文的组成部分)\n- [301，302，304 的区别](#301302304-的区别)\n- [说一下 https 获取加密秘钥的过程](#说一下-https-获取加密秘钥的过程)\n- [localstorage、sessionStorage、indexDB 和 cookie 的区别](#localstoragesessionstorageindexdb-和-cookie-的区别)\n- [点击一个按钮，浏览器会做些什么](#点击一个按钮浏览器会做些什么)\n- [TCP 三次握手](#tcp-三次握手)\n- [LocalStorage 加密原理](#localstorage-加密原理)\n- [说一下常见的状态码](#说一下常见的状态码)\n- [304 页面的原理](#304-页面的原理)\n- [客户端缓存有几种方式？浏览器出现 from disk、from memory 的策略是啥](#客户端缓存有几种方式浏览器出现-from-diskfrom-memory-的策略是啥)\n- [什么是 http？什么是 http2？说下 http 与 http2 的工作流程](#什么是-http什么是-http2说下-http-与-http2-的工作流程)\n- [客户端如何发送 http 请求](#客户端如何发送-http-请求)\n- [http1.1 时如何复用 tcp 连接](#http11-时如何复用-tcp-连接)\n- [介绍浏览器事件流向](#介绍浏览器事件流向)\n- [cookie 放哪里，cookie 能做的事情和存在的价值](#cookie-放哪里cookie-能做的事情和存在的价值)\n- [cookie 和 token 都存放在 header 里面，为什么只劫持前者](#cookie-和-token-都存放在-header-里面为什么只劫持前者)\n- [cookie 的引用为了解决什么问题](#cookie-的引用为了解决什么问题)\n- [403、301、302 是什么](#403301302-是什么)\n- [HTTPS 怎么建立安全通道，Https 的加密过程](#https-怎么建立安全通道https-的加密过程)\n- [介绍下数字签名的原理](#介绍下数字签名的原理)\n- [介绍一下网络的五层模型](#介绍一下网络的五层模型)\n- [介绍 SSL 与 TLS](#介绍-ssl-与-tls)\n- [服务端怎么做统一的状态处理](#服务端怎么做统一的状态处理)\n- [以下说法中对协议描述不正确的是？(单选题)](#以下说法中对协议描述不正确的是单选题)\n- [以下哪些是 HTTP 请求中浏览器缓存机制会用到的协议头？(多选题)](#以下哪些是-http-请求中浏览器缓存机制会用到的协议头单选题)\n- [请写下你对协商缓存和强缓存的理解？](#请写下你对协商缓存和强缓存的理解)\n- [给出页面的加载顺序](#给出页面的加载顺序)\n- [详细描述一个 http 请求从发起请求到收到响应的全部过程(越细越好)](#详细描述一个-http-请求从发起请求到收到响应的全部过程越细越好)\n- [简述静态链接和动态链接的区别，并举例说明](#简述静态链接和动态链接的区别并举例说明)\n- [缓存有哪些？前端缓存有哪些？怎么用？如何和后台配合](#缓存有哪些前端缓存有哪些怎么用如何和后台配合)\n- [Dom tree 和 cssdom 是如何合并成 render tree 的](#dom-tree-和-cssdom-是如何合并成-render-tree-的)\n- [CDN 分布式部署，如何处理用户请求最近的资源？](#cdn-分布式部署如果处理用户请求最近的资源)\n- [说一下缓存有哪几种，具体都是怎么实现和比较的，缓存优先级，相互之间的对比](#说一下缓存有哪几种具体都是怎么实现和比较的缓存优先级相互之间的对比)\n- [说下你对浏览器缓存理解](#说下你对浏览器缓存理解)\n- [Http 连接是如何复用的](#http-连接是如何复用的)\n- [301、302 的 https 被挟持怎么办？](#301302-的-https-被挟持怎么办)\n- [介绍 Http2 特性，Http2 怎么确保文件同时传输不会报错](#介绍-http2-特性http2-怎么确保文件同时传输不会报错)\n- [HTTP2.0的多路复⽤和HTTP1.X中的⻓连接复⽤有什么区别？](#http20的多路复和http1x中的连接复有什么区别)\n- [HTTP2.0多路复⽤有多好？](#http20多路复有多好)\n- [http请求由什么组成？](#http请求由什么组成)\n- [列举并解释一下 http 的所有请求方法，](#列举并解释一下-http-的所有请求方法)\n- [列举出在浏览器中，页面加载过程中发出了哪些事件？并画出这些事件的执行顺序？](#列举出在浏览器中页面加载过程中发出了哪些事件并画出这些事件的执行顺序)\n- [请列出 HTTP/1.1 协议 Response 状态码：20x、30x、40x、50x 等各区间的含义，并说明 Action 在 Restful API 中分别使用哪些 Http 副词(action)表现出 CRUD?](#请列出-http11-协议-response-状态码20x30x40x50x-等各区间的含义并说明-action-在-restful-api-中分别使用哪些-http-副词action表现出-crud)\n- [catch-control 有哪些设定值](#catch-control-有哪些设定值)\n\n### 介绍chrome 浏览器的几个版本\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/11)\n\n<br/>\n\n### 说一下 Http 缓存策略，有什么区别，分别解决了什么问题\n\n公司：滴滴、头条、网易、易车、脉脉、掌门一对一、虎扑、挖财、爱范儿\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/14)\n\n<br/>\n\n### 前端安全、中间人攻击\n\n公司：滴滴、边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/16)\n\n<br/>\n\n### V8 机制讲解\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/232)\n\n<br/>\n\n### CDN 是什么？描述下 CDN 原理？为什么要用 CDN?\n\n公司：头条、滴滴、网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/218)\n\n<br/>\n\n### PWA 是什么？对 PWA 有什么了解\n\n公司：头条、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/217)\n\n<br/>\n\n### 说一下浏览器解析 Html 文件的过程\n\n公司：伴鱼\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/193)\n\n<br/>\n\n### 从输入 URL 到页面加载全过程\n\n公司：头条、边锋、菜鸟网络、爱范儿、心娱\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/186)\n\n### DNS 解析的具体过程\n\n公司：边锋、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/184)\n\n<br/>\n\n### 常见的 http 请求头都有哪些，以及它们的作用\n\n公司：阿里、边锋、喜马拉雅、玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/183)\n\n<br/>\n\n### encoding 头都有哪些编码方式\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/182)\n\n<br/>\n\n### utf-8 和 asc 码有什么区别\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/181)\n\n<br/>\n\n### tcp 和 udp 有什么区别？tcp 怎样确保数据正确性？tcp 头包含什么？tcp 属于那一层？\n\n公司：头条、边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/180)\n\n<br/>\n\n### 传输层和网络层分别负责什么，端口在什么层标记\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/179)\n\n<br/>\n\n### 介绍下 Https，和 http 的区别是什么？https 为什么比 http 安全？如何进行配置？\n\n公司：边锋、老虎、脉脉、掌门一对一、喜马拉雅、寺库、腾讯应用宝、快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/178)\n\n<br/>\n\n### 说一下加密握手的过程\n\n公司：边锋、老虎\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/177)\n\n<br/>\n\n### 对称加密和非对称加密的区别和用处\n\n公司：边锋\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/176)\n\n<br/>\n\n### 浏览器都有哪些进程，渲染进程中都有什么线程\n\n公司：老虎\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/167)\n\n<br/>\n\n### 说说浏览器渲染流程，分层之后在什么时候合成，什么是重排、重绘，怎样避免\n\n公司：老虎\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/166)\n\n<br/>\n\n### 什么是同源策略？什么是跨域？都有哪些方式会造成跨域？解决跨域都有什么手段？\n\n公司：阿里、滴滴、老虎、完美世界、沪江、喜马拉雅、兑吧、寺库、玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/165)\n\n<br/>\n\n### 什么是 CORS，CORS 需要前端配置还是后端配置？\n\n公司：酷狗\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/164)\n\n<br/>\n\n### Http1 和 Http2 有什么区别，和 http1.1 相比，http2 都有什么特性\n\n公司：完美世界、网易、脉脉、高思教育\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/361)\n\n<br/>\n\n### 说一下 etag 和 lastmodify 的区别\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/353)\n\n<br/>\n\n### 强缓存都有哪些方法来控制\n\n公司：网易、易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/352)\n\n<br/>\n\n### 协商缓存都有哪些参数\n\n公司：网易、易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/351)\n\n<br/>\n\n### 请求是异步的为什么会造成阻塞\n\n公司：易车\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/341)\n\n<br/>\n\n### CDN 有哪些优化静态资源加载速度的机制\n\n公司：头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/326)\n\n<br/>\n\n### 说一下 Nginx 的缓存策略，强缓存与弱缓存的区别，二者的使用场景\n\n公司：高德\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/304)\n\n<br/>\n\n### 请描述 CSRF、XSS 的基本概念、攻击原理和防御措施？\n\n公司：自如、挖财、腾讯应用宝、沪江、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/274)\n\n<br/>\n\n### 请描述提升页面性能的方式有哪些，如何进行首页加载优化\n\n公司：自如\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/273)\n\n<br/>\n\n### Http 报文的请求会有几个部分？请写出 HTTP 报文的组成部分\n\n公司：自如、滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/)\n\n<br/>\n\n### 301，302，304 的区别\n\n公司：自如\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/270)\n\n<br/>\n\n### 说一下 https 获取加密秘钥的过程\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/414)\n\n<br/>\n\n### localstorage、sessionStorage、indexDB 和 cookie 的区别\n\n公司：掌门一对一、滴滴、兑吧、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/409)\n\n<br/>\n\n### 点击一个按钮，浏览器会做些什么\n\n公司：虎扑\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/402)\n\n<br/>\n\n### TCP 三次握手\n\n公司：菜鸟网络、头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/394)\n\n<br/>\n\n### LocalStorage 加密原理\n\n公司：腾讯应用宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/385)\n\n<br/>\n\n### 说一下常见的状态码\n\n公司：腾讯应用宝、喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/383)\n\n<br/>\n\n### 304 页面的原理\n\n公司：腾讯应用宝\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/381)\n\n<br/>\n\n### 客户端缓存有几种方式？浏览器出现 from disk、from memory 的策略是啥\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/573)\n\n<br/>\n\n### 什么是 http？什么是 http2？说下 http 与 http2 的工作流程\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/572)\n\n<br/>\n\n### 客户端如何发送 http 请求\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/571)\n\n<br/>\n\n### http1.1 时如何复用 tcp 连接\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/)\n\n<br/>\n\n### 介绍浏览器事件流向\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/527)\n\n<br/>\n\n### cookie 放哪里，cookie 能做的事情和存在的价值\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/514)\n\n<br/>\n\n### cookie 和 token 都存放在 header 里面，为什么只劫持前者\n\n公司：滴滴\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/513)\n\n<br/>\n\n### cookie 的引用为了解决什么问题\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/478)\n\n<br/>\n\n### 403、301、302 是什么\n\n公司：喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/438)\n\n<br/>\n\n### HTTPS 怎么建立安全通道，Https 的加密过程\n\n公司：喜马拉雅、寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/437)\n\n<br/>\n\n### 介绍下数字签名的原理\n\n公司：喜马拉雅\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/435)\n\n<br/>\n\n### 介绍一下网络的五层模型\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/781)\n\n<br/>\n\n### 介绍 SSL 与 TLS\n\n公司：寺库\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/780)\n\n<br/>\n\n### 服务端怎么做统一的状态处理\n\n公司：宝宝树\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/774)\n\n<br/>\n\n### 以下说法中对协议描述不正确的是？(单选题)\n\n```js\nA.HTTP 协议是在 TCP/IP 协议之上的应用层协议\nB.HTTP 1.1 缺省支持 keep-alive\nC.WebSocket 是由 Socket 发展而来的新规范\nD.WebSocket 可以建立持久连接\n```\n\n公司：会小二\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/692)\n\n<br/>\n\n### 以下哪些是 HTTP 请求中浏览器缓存机制会用到的协议头？(多选题)\n\n```js\nA.Last-Modified\nB.Etag\nC.Referer\nD.Authorization\n```\n\n公司：会小二\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/691)\n\n<br/>\n\n### 请写下你对协商缓存和强缓存的理解？\n\n公司：会小二、58\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/680)\n\n<br/>\n\n### 给出页面的加载顺序\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/677)\n\n<br/>\n\n### 详细描述一个 http 请求从发起请求到收到响应的全部过程(越细越好)\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/669)\n\n<br/>\n\n### 简述静态链接和动态链接的区别，并举例说明\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/668)\n\n<br/>\n\n### 缓存有哪些？前端缓存有哪些？怎么用？如何和后台配合\n\n公司：高思教育\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/656)\n\n<br/>\n\n### Dom tree 和 cssdom 是如何合并成 render tree 的\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/652)\n\n<br/>\n\n### CDN 分布式部署，如何处理用户请求最近的资源？\n\n公司：快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/632)\n\n<br/>\n\n### 说一下缓存有哪几种，具体都是怎么实现和比较的，缓存优先级，相互之间的对比\n\n公司：快手\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/631)\n\n<br/>\n\n### 说下你对浏览器缓存理解\n\n公司：头条\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/629)\n\n<br/>\n\n### Http 连接是如何复用的\n\n公司：酷狗\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/623)\n\n<br/>\n\n### 301、302 的 https 被挟持怎么办？\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/857)\n\n<br/>\n\n### 介绍 Http2 特性，Http2 怎么确保文件同时传输不会报错\n\n公司：网易\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/856)\n\n<br/>\n\n### HTTP2.0的多路复⽤和HTTP1.X中的⻓连接复⽤有什么区别？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/788)\n\n<br/>\n\n### HTTP2.0多路复⽤有多好？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/787)\n\n<br/>\n\n### http请求由什么组成？\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/868)\n\n<br/>\n\n### 列举并解释一下 http 的所有请求方法，\n\n公司：爱范儿、乘法云\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/851)\n\n<br/>\n\n### 列举出在浏览器中，页面加载过程中发出了哪些事件？并画出这些事件的执行顺序？\n\n公司：玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/842)\n\n<br/>\n\n### 请列出 HTTP/1.1 协议 Response 状态码：20x、30x、40x、50x 等各区间的含义，并说明 Action 在 Restful API 中分别使用哪些 Http 副词(action)表现出 CRUD?\n\n公司：玄武科技\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/835)\n\n<br/>\n\n### catch-control 有哪些设定值\n\n公司：58\n\n分类：网络&安全\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/816)\n\n<br/>\n\n\n"
  },
  {
    "path": "summarry/javascript.md",
    "content": "# JavaScript题目汇总\n\n- [写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,...,a+nb 的时间，然后写一个 myClear，停止上面的 mySetInterVal](#写一个-mysetintervalfn-a-b每次间隔-aaba2b-的时间然后写一个-myclear停止上面的-mysetinterval)\n- [介绍防抖节流原理、区别以及应用，并用JavaScript进行实现](#介绍防抖节流原理区别以及应用并用javascript进行实现)\n- [对闭包的看法，为什么要用闭包？说一下闭包原理以及应用场景](#对闭包的看法为什么要用闭包说一下闭包原理以及应用场景)\n- [实现 lodash 的_.get](#实现-lodash-的_get)\n- [实现 add(1)(2)(3)](#实现-add123)\n- [实现链式调用](#实现链式调用)\n- [类数组和数组的区别，dom 的类数组如何转换成数组](#类数组和数组的区别dom-的类数组如何转换成数组)\n- [介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise](#介绍下-promise-的特性优缺点内部是如何实现的动手实现-promise)\n- [实现 Promise.all](#实现-promiseall)\n- [手写发布订阅](#手写发布订阅)\n- [手写数组转树](#手写数组转树)\n- [手写用 ES6proxy 如何实现 arr[-1] 的访问](#手写用-es6proxy-如何实现-arr-1-的访问)\n- [手写实现 Array.flat()](#手写实现-arrayflat)\n- [大数计算如何实现](#大数计算如何实现)\n- [什么是深拷贝，和浅拷贝有什么区别，动手实现一个深拷贝](#什么是深拷贝和浅拷贝有什么区别动手实现一个深拷贝)\n- [实现一个方法判断 html 中的标签是否闭合](#实现一个方法判断-html-中的标签是否闭合)\n- [箭头函数和普通函数的区别](#箭头函数和普通函数的区别)\n- [es5 实现 isInteger](#es5-实现-isinteger)\n- [写出输出结果](#写出输出结果)\n- [手写 dom 操作，翻转 li 标签，如何处理更优](#手写-dom-操作翻转-li-标签如何处理更优)\n- [怎样判断一个对象是否是数组，如何处理类数组对象](#怎样判断一个对象是否是数组如何处理类数组对象)\n- [是否了解 glob，glob 是如何处理文件的，业界是否还有其它解决方案](#是否了解-globglob-是如何处理文件的业界是否还有其它解决方案)\n- [随便打开一个网页，用 JavaScript 打印所有以 s 和 h 开头的标签，并计算出标签的种类](#随便打开一个网页用-javascript-打印所有以-s-和-h-开头的标签并计算出标签的种类)\n- [1000*1000 的画布，上面有飞机、子弹，如何划分区域能够更有效的做碰撞检测，类似划分区域大小与碰撞检测效率的算法，说一下大致的思路](#10001000-的画布上面有飞机子弹如何划分区域能够更有效的做碰撞检测类似划分区域大小与碰撞检测效率的算法说一下大致的思路)\n- [移动设备安卓与 iOS 的软键盘弹出的处理方式有什么不同](#移动设备安卓与-ios-的软键盘弹出的处理方式有什么不同)\n- [iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决](#iphone-里面-safari-上如果一个输入框-fixed-绝对定位在底部当软键盘弹出的时候会有什么问题如何解决)\n- [给定一个数组，按找到每个元素右侧第一个比它大的数字，没有的话返回-1 规则返回一个数组](#给定一个数组按找到每个元素右侧第一个比它大的数字没有的话返回-1-规则返回一个数组)\n- [说一说 promise，有几个状态，通过 catch 捕获到 reject 之后，在 catch 后面还能继续执行 then 方法嘛，如果能执行执行的是第几个回调函数](#说一说-promise有几个状态通过-catch-捕获到-reject-之后在-catch-后面还能继续执行-then-方法嘛如果能执行执行的是第几个回调函数)\n- [var、let、const 的区别](#varletconst-的区别)\n- [说一下 GC](#说一下-gc)\n- [如何实现按需加载](#如何实现按需加载)\n- [讲一下 import 的原理，与 require 有什么不同](#讲一下-import-的原理与-require-有什么不同)\n- [请实现如下的函数](#请实现如下的函数)\n- [是否用过 restful 接口，和其他风格的有什么区别](#是否用过-restful-接口和其他风格的有什么区别)\n- [说一下 get、post、put 的区别](#说一下-getpostput-的区别)\n- [说一下对面向对象的理解，面向对象有什么好处](#说一下对面向对象的理解面向对象有什么好处)\n- [类设计：使用面相对象设计一个停车场管理系](#类设计使用面相对象设计一个停车场管理系)\n- [实现输出一个十六进制的随机颜色(#af0128a)](#实现输出一个十六进制的随机颜色af0128a)\n- [手写代码实现kuai-shou-front-end=&gt;KuaiShouFrontEnd](#手写代码实现kuai-shou-front-endkuaishoufrontend)\n- [设计一个 Student 组件，实现输入姓名性别成绩（这三个必填），还有几个不是必填的属性，要设置默认值，点击弹出成绩](#设计一个-student-组件实现输入姓名性别成绩这三个必填还有几个不是必填的属性要设置默认值点击弹出成绩)\n- [设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2](#设计一个函数奇数次执行的时候打印-1偶数次执行的时候打印-2)\n- [实现 Promise.then](#实现-promisethen)\n- [平时在项目开发中都做过哪些前端性能优化](#平时在项目开发中都做过哪些前端性能优化)\n- [给定起止日期，返回中间的所有月份](#给定起止日期返回中间的所有月份)\n- [输入两个字符串，输出他们中间的月份](#输入两个字符串输出他们中间的月份)\n- [用尽量短的代码实现一个 arrary 的链式操作，将数组中的大于 10 的值进行一个累加](#用尽量短的代码实现一个-arrary-的链式操作将数组中的大于-10-的值进行一个累加)\n- [简单封装一个异步 fecth，使用 async await 的方式来使用](#简单封装一个异步-fecth使用-async-await-的方式来使用)\n- [请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值](#请写一个函数输出出多级嵌套结构的-object-的所有-key-值)\n- [写出打印结果，并解释为什么](#写出打印结果并解释为什么)\n- [动手实现一个 repeat 方法](#动手实现一个-repeat-方法)\n- [setTimeout 有什么缺点，和 requestAnimationFrame 有什么区别](#settimeout-有什么缺点和-requestanimationframe-有什么区别)\n- [versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数](#versions-是一个项目的版本号列表因多人维护不规则动手实现一个版本号处理函数)\n- [实现一个多并发的请求](#实现一个多并发的请求)\n- [写出代码执行结果](#写出代码执行结果)\n- [按要求实现一个 sum 函数](#按要求实现一个-sum-函数)\n- [说一下 base64 的编码方式](#说一下-base64-的编码方式)\n- [改变 this 指向的方式都有哪些？](#改变-this-指向的方式都有哪些)\n- [说一下module.exports和exports的区别，export和export default的区别](#说一下moduleexports和exports的区别export和export-default的区别)\n- [number 为什么会出现精度损失，怎样避免](#number-为什么会出现精度损失怎样避免)\n- [实现一个函数将中文数字转成数字](#实现一个函数将中文数字转成数字)\n- [节流](#节流)\n- [如何实现 5 秒自动刷新一次页面(具体都有什么方法 reload 之类的)](#如何实现-5-秒自动刷新一次页面具体都有什么方法-reload-之类的)\n- [都了解哪些 ES6、ES7 的新特性，箭头函数可以被 new 吗](#都了解哪些-es6es7-的新特性箭头函数可以被-new-吗)\n- [说一下 JavaScript 继承都有哪些方法](#说一下-javascript-继承都有哪些方法)\n- [已知函数 A，要求构造⼀个函数 B 继承 A](#已知函数-a要求构造个函数-b-继承-a)\n- [数组和对象转换为字符串结果](#数组和对象转换为字符串结果)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果-1)\n- [要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName](#要求不同式对-a-进改造实现-aname-发变化时即执-agetname)\n- [修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）](#修改以下代码使得最后代码能够输出数字-0-9最好能给多种答案)\n- [请给出识别 Email 的正则表达式](#请给出识别-email-的正则表达式)\n- [设计 AutoComplete 组件(又叫搜索组件、自动补全组件等)时，需要考虑什么问题？](#设计-autocomplete-组件又叫搜索组件自动补全组件等时需要考虑什么问题)\n- [实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和](#实现函数接受任意二叉树求二叉树所有根到叶子路径组成的数字之和)\n- [请写出一下代码的打印结果](#请写出一下代码的打印结果)\n- [Promise 链式调用如何实现](#promise-链式调用如何实现)\n- [说一下对BigInt的理解，在什么场景下会使用](#说一下对bigint的理解在什么场景下会使用)\n- [null 是不是一个对象，如果是，如何判断一个对象是 null，不使用 JavaScript 提供的 api 如何进行判断](#null-是不是一个对象如果是如何判断一个对象是-null不使用-javascript-提供的-api-如何进行判断)\n- [说一下对于堆栈的理解](#说一下对于堆栈的理解)\n- [[] == ![]为什么](#--为什么)\n- [如何把真实 dom 转变为虚拟 dom，代码实现一下](#如何把真实-dom-转变为虚拟-dom代码实现一下)\n- [说一下错误监控的实现，错误监控的正确使用方式，日志如何分等级](#说一下错误监控的实现错误监控的正确使用方式日志如何分等级)\n- [请写出以下代码执行结果](#请写出以下代码执行结果)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-1)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-2)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-3)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-4)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-5)\n- [请写出以下代码执行结果](#请写出以下代码执行结果-6)\n- [说一下什么是死锁](#说一下什么是死锁)\n- [实现以下代码](#实现以下代码)\n- [请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求](#请实现一个-cacherequest-方法保证发出多次同一个-ajax-请求时都能拿到数据而实际上只发出一次请求)\n- [实现一个函数柯里化](#实现一个函数柯里化)\n- [说一下对原型链的理解，画一个经典的原型链图示](#说一下对原型链的理解画一个经典的原型链图示)\n- [说一下 ajax/axios/fetch 的区别](#说一下-ajaxaxiosfetch-的区别)\n- [用 Promise 封装一个 ajax](#用-promise-封装一个-ajax)\n- [描述 DOM 事件捕获的具体流程](#描述-dom-事件捕获的具体流程)\n- [请实现$on,$emit](#请实现onemit)\n- [实现 bind 方法，不能使用 call、apply、bind](#实现-bind-方法不能使用-callapplybind)\n- [手写实现 sleep 函数](#手写实现-sleep-函数)\n- [请写出原生 js 如何设置元素高度](#请写出原生-js-如何设置元素高度)\n- [用原生 js 实现自定义事件](#用原生-js-实现自定义事件)\n- [如何识别出字符串中的回车并进行换行？](#如何识别出字符串中的回车并进行换行？)\n- [输入一个日期 返回几秒前、几小时前、几天前、几月前](#输入一个日期-返回几秒前几小时前几天前几月前)\n- [将 153812.7 转化为 153,812.7](#将-1538127-转化为-1538127)\n- [数组有哪些方法 讲讲区别跟使用场景](#数组有哪些方法-讲讲区别跟使用场景)\n- [讲一下函数式编程](#讲一下函数式编程)\n- [promise 跟 async await 的区别，使用场景](#promise-跟-async-await-的区别使用场景)\n- [async、await 如何进行错误捕获](#asyncawait-如何进行错误捕获)\n- [weak-Set、weak-Map 和 Set、Map 区别](#weak-setweak-map-和-setmap-区别)\n- [valueOf 与 toString 的区别](#valueof-与-tostring-的区别)\n- [怎么判断是一个空对象](#怎么判断是一个空对象)\n- [请写出下面代码的执行结果](#请写出下面代码的执行结果)\n- [请写出下面代码的执行结果](#请写出下面代码的执行结果-1)\n- [请只用数组方法和 Math.random()在一条语句的情况下，实现生成给定位数的随机数组，例如生成 10 位随机数组[1.1,102.1,2,3,8,4,90,123,11,123],数组内数字随机生成。](#请只用数组方法和-mathrandom在一条语句的情况下实现生成给定位数的随机数组例如生成-10-位随机数组11102123849012311123数组内数字随机生成)\n- [实现一个 setter 方法](#实现一个-setter-方法)\n- [setTimeout 与 setInterval 区别](#settimeout-与-setinterval-区别)\n- [项目中如何应用数据结构](#项目中如何应用数据结构)\n- [闭包的核心是什么](#闭包的核心是什么)\n- [写出代码输出结果](#写出代码输出结果)\n- [实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误](#实现一个功能发送请求-5s-时间后如果没有数据返回中断请求提示错误)\n- [什么是作用域链](#什么是作用域链)\n- [介绍事件冒泡、事件代理、事件捕获，以及它们的关系](#介绍事件冒泡事件代理事件捕获以及它们的关系)\n- [for..of 和 for...in 是否可以直接遍历对象，为什么](#forof-和-forin-是否可以直接遍历对象为什么)\n- [在 map 中和 for 中调用异步函数的区别](#在-map-中和-for-中调用异步函数的区别)\n- [gennerator yield 的作用](#gennerator-yield-的作用)\n- [promise 的状态有哪些](#promise-的状态有哪些)\n- [在 ES6 中有哪些解决异步的方法](#在-es6-中有哪些解决异步的方法)\n- [es6 类继承中 super 的作用](#es6-类继承中-super-的作用)\n- [cros 的简单请求和复杂请求的区别](#cros-的简单请求和复杂请求的区别)\n- [addEventListener 的第三个参数的作用](#addeventlistener-的第三个参数的作用)\n- [获取 id 为 netease 节点下所有的 checkbox 子元素(不用框架，注意兼容)](#获取-id-为-netease-节点下所有的-checkbox-子元素不用框架注意兼容)\n- [使用原型链如何实现继承](#使用原型链如何实现继承)\n- [如何获取一个对象的深度](#如何获取一个对象的深度)\n- [reduce 函数的功能，如何实现的，动手实现一下](#reduce-函数的功能如何实现的动手实现一下)\n- [说一下 splice 和 slice 的功能用法](#说一下-splice-和-slice-的功能用法)\n- [面向对象的三要素是啥？都是啥意思？](#面向对象的三要素是啥都是啥意思)\n- [函数中的 this 有几种](#函数中的-this-有几种)\n- [如何同时获取 html 中的 h1,h2,h3,h4,h5,h6 中的内容](#如何同时获取-html-中的-h1h2h3h4h5h6-中的内容)\n- [JavaScript 的执行流程](#javascript-的执行流程)\n- [Promise.resolve(obj)，obj 有几种可能](#promiseresolveobjobj-有几种可能)\n- [写出代码执行结果](#写出代码执行结果)\n- [nextTick 是在本次循环执行，还是在下次，setTimeout(() =&gt; {}, 0)呢？](#nexttick-是在本次循环执行还是在下次settimeout---0呢)\n- [使用正则去掉 Dom 中的内联样式](#使用正则去掉-dom-中的内联样式)\n- [写一个匹配 ip 地址的正则](#写一个匹配-ip-地址的正则)\n- [写一个匹配 Html 标签的正则](#写一个匹配-html-标签的正则)\n- [IOC 是啥，应用场景是啥？](#ioc-是啥应用场景是啥)\n- [写出代码执行的打印结果](#写出代码执行的打印结果)\n- [实现函数](#实现函数)\n- [怎么实现 this 对象的深拷贝](#怎么实现-this-对象的深拷贝)\n- [使用 canvas 绘图时如何组织成通用组件](#使用-canvas-绘图时如何组织成通用组件)\n- [表单可以跨域吗](#表单可以跨域吗)\n- [搜索请求如何处理？搜索请求中文如何请求？](#搜索请求如何处理搜索请求中文如何请求)\n- [介绍观察者模式](#介绍观察者模式)\n- [介绍中介者模式](#介绍中介者模式)\n- [观察者和订阅-发布的区别，各自用在哪里](#观察者和订阅-发布的区别各自用在哪里)\n- [通过什么做到并发请求](#通过什么做到并发请求)\n- [介绍 service worker](#介绍-service-worker)\n- [介绍事件代理以及优缺点，主要解决什么问题](#介绍事件代理以及优缺点主要解决什么问题)\n- [介绍下 this 的各种情况](#介绍下-this-的各种情况)\n- [前端如何控制管理路由](#前端如何控制管理路由)\n- [使用路由时出现问题如何解决](#使用路由时出现问题如何解决)\n- [JavaScript 异步解决方案的发展历程以及优缺点](#javascript-异步解决方案的发展历程以及优缺点)\n- [介绍 AST（Abstract Syntax Tree）抽象语法树](#介绍-astabstract-syntax-tree抽象语法树)\n- [对 async、await 的理解，内部原理是怎样的？](#对-asyncawait-的理解内部原理是怎样的)\n- [== 和 ===的区别，什么情况下用相等==](#-和-的区别什么情况下用相等)\n- [bind、call、apply 的区别](#bindcallapply-的区别)\n- [介绍下原型链](#介绍下原型链)\n- [介绍暂时性死区](#介绍暂时性死区)\n- [ES6 中的 map 和原生的对象有什么区别](#es6-中的-map-和原生的对象有什么区别)\n- [对纯函数的理解](#对纯函数的理解)\n- [介绍 JSX](#介绍-jsx)\n- [如何设计一个 localStorage，保证数据的时效性](#如何设计一个-localstorage保证数据的时效性)\n- [实现 sum 方法，使 sum(x)(y),sum(x,y)返回的结果相同](#实现-sum-方法使-sumxysumxy返回的结果相同)\n- [两个对象如何比较](#两个对象如何比较)\n- [说一下变量的作用域链](#说一下变量的作用域链)\n- [介绍 dom 树对比](#介绍-dom-树对比)\n- [如何设计状态树](#如何设计状态树)\n- [Ajax 发生跨域要设置什么（前端）](#ajax-发生跨域要设置什么前端)\n- [加上 CORS 之后从发起到请求正式成功的过程](#加上-cors-之后从发起到请求正式成功的过程)\n- [Async 里面有多个 await 请求，可以怎么优化](#async-里面有多个-await-请求可以怎么优化)\n- [JavaScript 变量类型分为几种，区别是什么](#javascript-变量类型分为几种区别是什么)\n- [JavaScript 里垃圾回收机制是什么，常用的是哪种，怎么处理的](#javascript-里垃圾回收机制是什么常用的是哪种怎么处理的)\n- [ES5 和 ES6 有什么区别](#es5-和-es6-有什么区别)\n- [取数组的最大值（ES5、ES6）](#取数组的最大值es5es6)\n- [some、every、find、filter、map、forEach 有什么区别](#someeveryfindfiltermapforeach-有什么区别)\n- [页面上生成一万个 button，并且绑定事件，如何做（JS 原生操作 DOM）？循环绑定时的 index 是多少，为什么，怎么解决？](#页面上生成一万个-button并且绑定事件如何做js-原生操作-dom循环绑定时的-index-是多少为什么怎么解决)\n- [页面上有一个 input，还有一个 p 标签，改变 input 后 p 标签就跟着变化，如何处理？监听 input 的哪个事件，在什么时候触发？](#页面上有一个-input还有一个-p-标签改变-input-后-p-标签就跟着变化如何处理监听-input-的哪个事件在什么时候触发)\n- [Promise 和 async/await，和 Callback 有什么区别](#promise-和-asyncawait和-callback-有什么区别)\n- [项目中对于用户体验做过什么优化](#项目中对于用户体验做过什么优化)\n- [前后端通信使用什么方案](#前后端通信使用什么方案)\n- [RESTful 常用的 Method](#restful-常用的-method)\n- [prototype 和proto区别](#prototype-和proto区别)\n- [new 的实现原理，动手实现一个 new](#new-的实现原理动手实现一个-new)\n- [如何实现 H5 手机端的适配](#如何实现-h5-手机端的适配)\n- [如何去除 url 中的#号](#如何去除-url-中的号)\n- [base64 为什么能提升性能，缺点](#base64-为什么能提升性能缺点)\n- [介绍 webp 这个图片文件格式](#介绍-webp-这个图片文件格式)\n- [异步请求，低版本 fetch 如何低版本适配](#异步请求低版本-fetch-如何低版本适配)\n- [ajax 如何处理跨域？CORSr 如何设置？](#ajax-如何处理跨域corsr-如何设置)\n- [jsonp 为什么不支持 post 方法](#jsonp-为什么不支持-post-方法)\n- [介绍 Immuable](#介绍-immuable)\n- [介绍 JS 全部数据类型，基本数据类型和引用数据类型的区别](#介绍-js-全部数据类型基本数据类型和引用数据类型的区别)\n- [Array 是 Object 类型吗](#array-是-object-类型吗)\n- [说一下栈和堆的区别，垃圾回收时栈和堆的区别](#说一下栈和堆的区别垃圾回收时栈和堆的区别)\n- [数组里面有 10 万个数据，取第一个元素和第 10 万个元素的时间相差多少](#数组里面有-10-万个数据取第一个元素和第-10-万个元素的时间相差多少)\n- [Async/Await 怎么实现](#asyncawait-怎么实现)\n- [JavaScript 为什么要区分微任务和宏任务](#javascript-为什么要区分微任务和宏任务)\n- [Promise 构造函数是同步还是异步执行，then 呢](#promise-构造函数是同步还是异步执行then-呢)\n- [JavaScript 执行过程分为哪些阶段](#javascript-执行过程分为哪些阶段)\n- [词法作用域和 this 的区别](#词法作用域和-this-的区别)\n- [loadsh 深拷贝实现原理](#loadsh-深拷贝实现原理)\n- [ES6 中 let 块作用域是怎么实现的](#es6-中-let-块作用域是怎么实现的)\n- [formData 和原生的 ajax 有什么区别](#formdata-和原生的-ajax-有什么区别)\n- [介绍下表单提交，和 formData 有什么关系](#介绍下表单提交和-formdata-有什么关系)\n- [promise 如何实现 then 处理，动手实现 then](#promise-如何实现-then-处理动手实现-then)\n- [如何处理异常捕获](#如何处理异常捕获)\n- [项目如何管理模块](#项目如何管理模块)\n- [尽可能多的写出判断数组的方法](#尽可能多的写出判断数组的方法)\n- [介绍 localstorage 的 api](#介绍-localstorage-的-api)\n- [使用原型最大的好处](#使用原型最大的好处)\n- [单例、工厂、观察者项目中实际场景](#单例工厂观察者项目中实际场景)\n- [添加原生事件不移除为什么会内存泄露，还有哪些地方会存在内存泄漏](#添加原生事件不移除为什么会内存泄露还有哪些地方会存在内存泄漏)\n- [setInterval 需要注意的点](#setinterval-需要注意的点)\n- [定时器为什么是不精确的](#定时器为什么是不精确的)\n- [setTimeout(1)和 setTimeout(2)之间的区别](#settimeout1和-settimeout2之间的区别)\n- [介绍宏任务和微任务](#介绍宏任务和微任务)\n- [promise 里面和 then 里面执行有什么区别](#promise-里面和-then-里面执行有什么区别)\n- [介绍 class 和 ES5 的类以及区别](#介绍-class-和-es5-的类以及区别)\n- [介绍 defineProperty 方法，什么时候需要用到](#介绍-defineproperty-方法什么时候需要用到)\n- [for..in 和 object.keys 的区别](#forin-和-objectkeys-的区别)\n- [使用闭包特权函数的使用场景](#使用闭包特权函数的使用场景)\n- [JavaScript 是什么范式语言](#javascript-是什么范式语言)\n- [Promise 有没有解决异步的问题](#promise-有没有解决异步的问题)\n- [Promise 和 setTimeout 的区别](#promise-和-settimeout-的区别)\n- [按照调用实例，实现下面的 Person 方法](#按照调用实例实现下面的-person-方法)\n- [请写出正确的执行结果](#请写出正确的执行结果)\n- [请写出正确的执行结果](#请写出正确的执行结果-1)\n- [请写出正确的执行结果](#请写出正确的执行结果-2)\n- [请写出正确的执行结果](#请写出正确的执行结果-3)\n- [请写出正确的执行结果](#请写出正确的执行结果-4)\n- [请写出正确的执行结果](#请写出正确的执行结果-5)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因)\n- [请写出正确的执行结果](#请写出正确的执行结果-6)\n- [请写出正确的执行结果](#请写出正确的执行结果-7)\n- [按要求完成代码](#按要求完成代码)\n- [请写出正确的执行结果](#请写出正确的执行结果-8)\n- [请写出正确的执行结果](#请写出正确的执行结果-9)\n- [请修改代码能跳出死循环](#请修改代码能跳出死循环)\n- [修改代码不造成死循环](#修改代码不造成死循环)\n- [请写出代码正确执行结果](#请写出代码正确执行结果)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-1)\n- [计算以上字节每位 <g-emoji class=\"g-emoji\" alias=\"airplane\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/2708.png\">✈️</g-emoji> 的起码点，并描述这些字节的起码点代表什么](#计算以上字节每位-️-的起码点并描述这些字节的起码点代表什么)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-1)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-2)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-2)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-3)\n- [请写出代码正确执行结果，并解释原因](#请写出代码正确执行结果并解释原因-3)\n- [请问当前 textarea 文本框展示的内容是什么？](#请问当前-textarea-文本框展示的内容是什么)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-4)\n- [请写出代码正确执行结果](#请写出代码正确执行结果-5)\n- [请写出代码正确执行结果，并解释为什么](#请写出代码正确执行结果并解释为什么)\n- [请手写实现一个拖拽](#请手写实现一个拖拽)\n- [请手动实现一个浅拷贝](#请手动实现一个浅拷贝)\n- [介绍 instanceof 原理，并手动实现](#介绍-instanceof-原理并手动实现)\n- [请实现一个 JSON.stringfy](#请实现一个-jsonstringfy)\n- [请实现一个 JSON.parse](#请实现一个-jsonparse)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因-1)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因-2)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因-3)\n- [请写出代码的正确执行结果，并解释原因？](#请写出代码的正确执行结果并解释原因-4)\n- [请写出代码正确执行结果，并解释原因？](#请写出代码正确执行结果并解释原因-4)\n- [JavaScript 中如何模拟实现方法的重载](#javascript-中如何模拟实现方法的重载)\n- [请解释 JSONP 的工作原理](#请解释-jsonp-的工作原理)\n- [用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。](#用-htmlcssjs-模拟实现一个下拉框使得下拉框在各个浏览器下的样式和行为完全一致说出你的设计方案并且重点说明功能设计时要考虑的因素)\n- [实现一个打点计时器](#实现一个打点计时器)\n- [JavaScript 写一个单例模式，可以具体到某一个场景](#javascript-写一个单例模式可以具体到某一个场景)\n- [JavaScript 基本数据类型都有哪些？用 typeOf 判断分别显示什么？](#javascript-基本数据类型都有哪些用-typeof-判断分别显示什么)\n- [怎么判断引用类型数据，兼容判断原始类型数据呢？](#怎么判断引用类型数据兼容判断原始类型数据呢)\n- [概述异步编程模型](#概述异步编程模型)\n- [在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标](#在一个-ul-里有-10-个-li实现点击对应的-li输出对应的下标)\n- [分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]](#分别对以下数组进行去重11122321123123456)\n- [简述 JavaScript 中的函数的几种调用方式](#简述-javascript-中的函数的几种调用方式)\n- [编写一个 Person 类，并创建两个不同的 Person 对象](#编写一个-person-类并创建两个不同的-person-对象)\n- [手写实现 call](#手写实现-call)\n- [手写实现 apply](#手写实现-apply)\n- [一个 dom 必须要操作几百次，该如何解决，如何优化？](#一个-dom-必须要操作几百次该如何解决如何优化)\n- [页面埋点怎么实现](#页面埋点怎么实现)\n- [除了 jsonp、postmessage 后端控制，怎么实现跨页面通讯](#除了-jsonppostmessage-后端控制怎么实现跨页面通讯)\n- [说一下 let、const 的实现，动手实现一下](#说一下-letconst-的实现动手实现一下)\n- [addEventListener 再 removeListener 会不会造成内存泄漏](#addeventlistener-再-removelistener-会不会造成内存泄漏)\n- [scrollview 如何进行性能优化(例如 page=100 时，往上滚动)](#scrollview-如何进行又能优化例如-page100-时往上滚动)\n- [原生 JavaScript 获取 ul 中的第二个 li 里边的 p 标签的内容](#原生-javascript-获取-ul-中的第二个-li-里边的-p-标签的内容)\n- [说下 offsetWith 和 clientWidth、offsetHeight 和 clientHeight 的区别，说说 offsetTop，offsetLeft，scrollWidth、scrollHeight 属性都是干啥的](#说下-offsetwith-和-clientwidthoffsetheight-和-clientheight-的区别说说-offsettopoffsetleftscrollwidthscrollheight-属性都是干啥的)\n- [写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组](#写一个函数打乱一个数组传入一个数组返回一个打乱的新数组)\n- [数组截取插入 splice，push 返回值，数组的栈方法、队列方法、排序方法、操作方法、迭代方法说一下](#数组截取插入-splicepush-返回值数组的栈方法队列方法排序方法操作方法迭代方法说一下)\n- [判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型](#判断一个变量的类型写个方法用-objectprototypetostring-判断传入数据的类型)\n- [判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型？Object.prototype.toString.call(Symbol) 返回什么？](#判断一个变量的类型写个方法用-objectprototypetostring-判断传入数据的类型objectprototypetostringcallsymbol-返回什么)\n- [对作用域和闭包的理解，解释下 let 和 const 的块级作用域](#对作用域和闭包的理解解释下-let-和-const-的块级作用域)\n- [以下代码输出什么？](#以下代码输出什么)\n- [switch case，case 具体是怎么比较的，哪些情况下会走到 default](#switch-casecase-具体是怎么比较的哪些情况下会走到-default)\n- [说下 typeof()各种类型的返回值？instanceof 呢？](#说下-typeof各种类型的返回值instanceof-呢)\n- [if([] == 0), [1,2] == \"1,2\", if([]), [] == 0 具体是怎么对比的](#if--0-12--12-if---0-具体是怎么对比的)\n- [如何加快页面渲染速度，都有哪些方式](#如何加快页面渲染速度都有哪些方式)\n- [generator 的实现原理](#genertor-的实现原理)\n- [判断是否是数组的方法](#判断是否是数组的方法)\n- [手写 EventEmitter 实现](#手写-eventemitter-实现)\n- [给出的两行代码为什么这么输出](#给出的两行代码为什么这么输出)\n- [动画性能如何检测](#动画性能如何检测)\n- [平时都用到了哪些设计模式](#平时都用到了哪些设计模式)\n- [对 service worker 的理解](#对-service-worker-的理解)\n- [单点登录实现原理](#单点登录实现原理)\n- [尾递归实现](#尾递归实现)\n- [有 1000 个 dom，需要更新其中的 100 个，如何操作才能减少 dom 的操作？](#有-1000-个-dom需要更新其中的-100-个如何操作才能减少-dom-的操作)\n- [商城的列表页跳转到商品的详情页，详情页数据接口很慢，前端可以怎么优化用户体验？](#商城的列表页跳转到商品的详情页详情页数据接口很慢前端可以怎么优化用户体验)\n- [多个 tab 只对应一个内容框，点击每个 tab 都会请求接口并渲染到内容框，怎么确保频繁点击 tab 但能够确保数据正常显示？](#多个-tab-只对应一个内容框点击每个-tab-都会请求接口并渲染到内容框怎么确保频繁点击-tab-但能够确保数据正常显示)\n- [请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)](#请实现鼠标点击页面中的任意标签alert-该标签的名称注意兼容性)\n- [完成一个表达式，验证用户输入是否是电子邮箱](#完成一个表达式验证用户输入是否是电子邮箱)\n- [原生实现 ES5 的 Object.create()方法](#原生实现-es5-的-objectcreate方法)\n- [如何记录前端在用户浏览器上发生的错误并汇报给服务器？](#如何记录前端在用户浏览器上发生的错误并汇报给服务器)\n- [有哪几种方式可以解决跨域问题？(描述对应的原理)](#有哪几种方式可以解决跨域问题描述对应的原理)\n- [按要求完成题目](#按要求完成题目)\n- [你是如何组织 JavaScript 代码的？（可以从模块、组件、模式、编程思想等方面回答）](#你是如何组织-javascript-代码的可以从模块组件模式编程思想等方面回答)\n- [填充代码实现 template 方法](#填充代码实现-template-方法)\n- [请描述下为什么页面需要做优化？并写出常用的页面优化实现方案？](#请描述下为什么页面需要做优化并写出常用的页面优化实现方案)\n- [请列出至少 5 个 JavaScript 常用的内置对象，说明用途](#请列出至少-5-个-javascript-常用的内置对象说明用途)\n- [请描述下 JavaScript 中 Scope、Closure、Prototype 概念，并说明 JavaScript 封装、继承实现原理。](#请描述下-javascript-中-scopeclosureprototype-概念并说明-javascript-封装继承实现原理)\n- [请列出目前主流的 JavaScript 模块化实现的技术有哪些？说出它们的区别？](#请列出目前主流的-javascript-模块化实现的技术有哪些说出它们的区别)\n- [请用 JavaScript 代码实现事件代理](#请用-javascript-代码实现事件代理)\n- [实现格式化输出，比如输入 999999999，输出 999,999,999](#实现格式化输出比如输入-999999999输出-999999999)\n- [使用 JavaScript 实现 cookie 的设置、读取、删除](#使用-javascript-实现-cookie-的设置读取删除)\n- [请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"<a href=\"http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2\" rel=\"nofollow\">http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2</a>\"](#请编写一个-javascript-函数-parsequerystring它的用途是把-url-参数解析为一个对象urlhttpiauto360cnindexphpkey00key11key22)\n- [如何实现 a,b 两个变量的交换](#如何实现-ab-两个变量的交换)\n- [给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符](#给-javascript-的-string-原生对象添加一个名为-trim-的原型方法用于截取字符串前后的空白字符)\n- [微任务和宏任务的区别](#微任务和宏任务的区别)\n- [原生 JavaScript 实现图片懒加载的思路](#原生-javascript-实现图片懒加载的思路)\n- [回调函数和任务队列的区别](#回调函数和任务队列的区别)\n- [写出下面代码的输出结果](#写出下面代码的输出结果)\n- [有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”](#有这样一个函数-a要求在不改变原有函数-a-功能以及调用方式的情况下使得每次调用该函数都能在控制台打印出helloworld)\n- [在浏览器执行以下代码，写出打印结果](#在浏览器执行以下代码写出打印结果)\n- [请写出弹出值，并解释为什么？](#请写出弹出值并解释为什么)\n- [写出输出值，并解释为什么](#写出输出值并解释为什么)\n- [请写出代码执⾏结果，并解释为什么](#请写出代码执结果并解释为什么)\n- [请写出代码执⾏结果，并解释为什么](#请写出代码执结果并解释为什么-1)\n- [给定⼀个⼤⼩为 n 的数组，找到其中的众数。众数是指在数组中出现次数⼤于 n/2 的元素](#给定个为-n-的数组找到其中的众数众数是指在数组中出现次数于--n2--的元素)\n- [原生实现addClass,用多种方法](#原生实现addclass用多种方法)\n- [实现一个倒计时,setInterval实现的话，如何消除时间误差](#实现一个倒计时setinterval实现的话如何消除时间误差)\n- [函数中的arguments是数组吗？若不是，如何将它转化为真正的数组？](#函数中的arguments是数组吗若不是如何将它转化为真正的数组)\n- [请写出以下代码的打印结果](#请写出以下代码的打印结果-2)\n- [以最小的改动解决以下代码的错误(可以使用ES6)](#以最小的改动解决以下代码的错误可以使用es6)\n- [实现Function 原型的bind方法，使得以下程序最后能输出“success”](#实现function-原型的bind方法使得以下程序最后能输出success)\n- [文件上传如何做断点续传](#文件上传如何做断点续传)\n- [列举 3 种强制类型转换和 2 种隐式类型转换](#列举-3-种强制类型转换和-2-种隐式类型转换)\n\n### 写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,...,a+nb 的时间，然后写一个 myClear，停止上面的 mySetInterVal\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/7)\n\n<br/>\n\n### 介绍防抖节流原理、区别以及应用，并用JavaScript进行实现\n\n公司：滴滴、虎扑、挖财、58、头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/15)\n\n<br/>\n\n### 对闭包的看法，为什么要用闭包？说一下闭包原理以及应用场景\n\n公司：滴滴、携程、喜马拉雅、微医、蘑菇街、酷家乐、腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/17)\n\n<br/>\n\n### 实现 lodash 的_.get\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/20)\n\n<br/>\n\n### 实现 add(1)(2)(3)\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/21)\n\n<br/>\n\n### 实现链式调用\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/22)\n\n<br/>\n\n### 类数组和数组的区别，dom 的类数组如何转换成数组\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/24)\n\n<br/>\n\n### 介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise\n\n公司：滴滴、头条、喜马拉雅、兑吧、寺库、百分点、58、安居客\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/29)\n\n<br/>\n\n### 实现 Promise.all\n\n```js\nPromise.all = function (arr) {\n  // 实现代码\n};\n```\n\n公司：滴滴、头条、有赞、微医\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/30)\n\n<br/>\n\n### 手写发布订阅\n\n公司：滴滴、头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/34)\n\n<br/>\n\n### 手写数组转树\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/35)\n\n<br/>\n\n### 手写用 ES6proxy 如何实现 arr[-1] 的访问\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/36)\n\n<br/>\n\n### 手写实现 Array.flat()\n\n公司：滴滴、快手、携程\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/242)\n\n<br/>\n\n### 大数计算如何实现\n\n公司：洋葱学院\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/235)\n\n<br/>\n\n### 什么是深拷贝，和浅拷贝有什么区别，动手实现一个深拷贝\n\n公司：顺丰、新东方、高德、虎扑、微医、百分点、酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/903)\n\n<br/>\n\n### 实现一个方法判断 html 中的标签是否闭合\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/234)\n\n<br/>\n\n### 箭头函数和普通函数的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/230)\n\n<br/>\n\n### es5 实现 isInteger\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/215)\n\n<br/>\n\n### 写出输出结果\n\n```js\nfunction Foo() {\n  getName = function () {\n    alert(1);\n  };\n  return this;\n}\nvar getName;\nfunction getName() {\n  alert(5);\n}\nFoo.getName = function () {\n  alert(2);\n};\nFoo.prototype.getName = function () {\n  alert(3);\n};\ngetName = function () {\n  alert(4);\n};\n\nFoo.getName(); // ？\ngetName(); // ？\nFoo().getName(); // ？\ngetName(); // ？\nnew Foo.getName(); // ?\nnew Foo().getName(); // ?\nnew new Foo().getName(); // ？\n```\n\n公司：心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/213)\n\n<br/>\n\n### 手写 dom 操作，翻转 li 标签，如何处理更优\n\n```js\n/*\n *有下边这样的dom结构，现在可以获取到ul，要求翻转里边li标签，如何处理更优\n */\n<ul>\n  <li>1</li>\n  <li>2</li>\n  <li>3</li>\n</ul>\n```\n\n公司：快手\n\n分类：\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/211)\n\n<br/>\n\n### 怎样判断一个对象是否是数组，如何处理类数组对象\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/210)\n\n<br/>\n\n### 是否了解 glob，glob 是如何处理文件的，业界是否还有其它解决方案\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/208)\n\n<br/>\n\n### 随便打开一个网页，用 JavaScript 打印所有以 s 和 h 开头的标签，并计算出标签的种类\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/204)\n\n<br/>\n\n### `1000*1000` 的画布，上面有飞机、子弹，如何划分区域能够更有效的做碰撞检测，类似划分区域大小与碰撞检测效率的算法，说一下大致的思路\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/203)\n\n<br/>\n\n### 移动设备安卓与 iOS 的软键盘弹出的处理方式有什么不同\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/202)\n\n<br/>\n\n### iPhone 里面 Safari 上如果一个输入框 fixed 绝对定位在底部，当软键盘弹出的时候会有什么问题，如何解决\n\n公司：快手\n\n分类：JavaScript、Css\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/201)\n\n<br/>\n\n### 给定一个数组，按找到每个元素右侧第一个比它大的数字，没有的话返回-1 规则返回一个数组\n\n```js\n/*\n *示例：\n *给定数组：[2,6,3,8,10,9]\n *返回数组：[6,8,8,10,-1,-1]\n */\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/199)\n\n<br/>\n\n### 说一说 promise，有几个状态，通过 catch 捕获到 reject 之后，在 catch 后面还能继续执行 then 方法嘛，如果能执行执行的是第几个回调函数\n\n公司：伴鱼、喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/198)\n\n<br/>\n\n### var、let、const 的区别\n\n公司：伴鱼、百分点、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/197)\n\n<br/>\n\n### 说一下 GC\n\n公司：伴鱼\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/195)\n\n<br/>\n\n### 如何实现按需加载\n\n公司：伴鱼、腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/189)\n\n<br/>\n\n### 讲一下 import 的原理，与 require 有什么不同\n\n公司：伴鱼、腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/188)\n\n<br/>\n\n### 请实现如下的函数\n\n```js\n/*\n\t可以批量请求数据，所有的 URL 地址在 urls 参数中，同时可以通过 max 参数控制请求的并发度，当所有请求结束之后，需要执行 callback 回调函数。发请求的函数可以直接使用 fetch 即可\n*/\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/185)\n\n<br/>\n\n### 是否用过 restful 接口，和其他风格的有什么区别\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/175)\n\n<br/>\n\n### 说一下 get、post、put 的区别\n\n公司：边锋、虎扑、酷家乐、酷狗、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/174)\n\n<br/>\n\n### 说一下对面向对象的理解，面向对象有什么好处\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/173)\n\n<br/>\n\n### 类设计：使用面相对象设计一个停车场管理系\n\n```js\n/*\n *题目要求\n *使用面相对象设计一个停车场管理系统，该停车场包含：\n *\t1.停车位，用于停放车辆；\n *\t2.停车位提示牌，用于展示剩余停车位；\n *可以丰富该系统的元素，给出类，类属性，类接口。\n */\n```\n\n公司：边锋\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/171)\n\n<br/>\n\n### 实现输出一个十六进制的随机颜色(#af0128a)\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/170)\n\n<br/>\n\n\n\n### 手写代码实现`kuai-shou-front-end=>KuaiShouFrontEnd`\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/168)\n\n<br/>\n\n### 设计一个 Student 组件，实现输入姓名性别成绩（这三个必填），还有几个不是必填的属性，要设置默认值，点击弹出成绩\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/163)\n\n<br/>\n\n### 设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/162)\n\n<br/>\n\n### 实现 Promise.then\n\n公司：高德、百分点\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/161)\n\n<br/>\n\n### 平时在项目开发中都做过哪些前端性能优化\n\n公司：阿里、顺丰、易车、有赞、挖财、喜马拉雅、兑吧、寺库、海康威视、道一云、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/160)\n\n<br/>\n\n### 给定起止日期，返回中间的所有月份\n\n```js\n// 输入两个字符串 2018-08  2018-12\n// 输出他们中间的月份 [2018-9,2018-10, 2018-11]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/159)\n\n<br/>\n\n### 按要求实现代码\n\n```js\n// 给两个数组 [A1,A2,B1,B2,C1,C2,D1,D2] [A,B,C,D]\n// 输出 [A1,A2,A,B1,B2,B,C1,C2,C,D1,D2,D]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/158)\n\n<br/>\n\n### 用尽量短的代码实现一个 arrary 的链式操作，将数组中的大于 10 的值进行一个累加\n\n公司：顺丰\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/156)\n\n<br/>\n\n### 简单封装一个异步 fecth，使用 async await 的方式来使用\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/155)\n\n<br/>\n\n### 请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值\n\n```js\nvar obj = {\n  a: \"12\",\n  b: \"23\",\n  first: {\n    c: \"34\",\n    d: \"45\",\n    second: { 3: \"56\", f: \"67\", three: { g: \"78\", h: \"89\", i: \"90\" } },\n  },\n};\n// => [a,b,c,d,e,f,g,h,i]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/152)\n\n<br/>\n\n\n\n### 写出打印结果，并解释为什么\n\n```js\nvar a = { k1: 1 };\nvar b = a;\na.k3 = a = { k2: 2 };\nconsole.log(a); // ?\nconsole.log(b); // ?\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/149)\n\n<br/>\n\n### 动手实现一个 repeat 方法\n\n```js\nfunction repeat(func, times, wait) {\n  // TODO\n}\nconst repeatFunc = repeat(alert, 4, 3000);\n// 调用这个 repeatFunc (\"hellworld\")，会alert4次 helloworld, 每次间隔3秒\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/148)\n\n<br/>\n\n### setTimeout 有什么缺点，和 requestAnimationFrame 有什么区别\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/147)\n\n<br/>\n\n### versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数\n\n```js\nvar versions = [\"1.45.0\", \"1.5\", \"6\", \"3.3.3.3.3.3.3\"];\n// 要求从小到大排序，注意'1.45'比'1.5'大\nfunction sortVersion(versions) {\n  // TODO\n}\n// => ['1.5','1.45.0','3.3.3.3.3.3','6']\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/146)\n\n<br/>\n\n### 实现一个多并发的请求\n\n```js\nlet urls = ['http://dcdapp.com', …];\n/*\n\t*实现一个方法，比如每次并发的执行三个请求，如果超时（timeout）就输入null，直到全部请求完\n\t*batchGet(urls, batchnum=3, timeout=3000);\n\t*urls是一个请求的数组，每一项是一个url\n\t*最后按照输入的顺序返回结果数组[]\n*/\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/144)\n\n<br/>\n\n### 写出代码执行结果\n\n```js\nasync function async1() {\n  console.log(\"async1 start\");\n  await async2();\n  console.log(\"async1 end\");\n}\nasync function async2() {\n  console.log(\"async2\");\n}\nconsole.log(\"script start\");\nsetTimeout(function () {\n  console.log(\"setTimeout\");\n}, 0);\nasync1();\nnew Promise(function (resolve) {\n  console.log(\"promise1\");\n  resolve();\n}).then(function () {\n  console.log(\"promise2\");\n});\nconsole.log(\"scripts end\");\n// 写出代码执行完成打印的结果\n```\n\n公司：头条、网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/142)\n\n<br/>\n\n### 按要求实现一个 sum 函数\n\n```js\nconst a = sum(0); // => a === 0\nconst b = sum(1)(2); // => b === 3\nconst c = sum(4)(5); // c === 9\nconst k = sum(n1)...(nk) // k === n1 + n2 + ... + nk\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/141)\n\n<br/>\n\n### 说一下 base64 的编码方式\n\n公司：完美世界\n\n分类：JavaScirpt\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/359)\n\n<br/>\n\n### 改变 this 指向的方式都有哪些？\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/354)\n\n<br/>\n\n### 说一下`module.exports`和`exports`的区别，`export`和`export default`的区别\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/350)\n\n<br/>\n\n### number 为什么会出现精度损失，怎样避免\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/348)\n\n<br/>\n\n### 实现一个函数将中文数字转成数字\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/343)\n\n<br/>\n\n### 节流\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/342)\n\n<br/>\n\n### 如何实现 5 秒自动刷新一次页面(具体都有什么方法 reload 之类的)\n\n公司：易车\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/338)\n\n<br/>\n\n### 都了解哪些 ES6、ES7 的新特性，箭头函数可以被 new 吗\n\n公司：易车、脉脉、虎扑、喜马拉雅、百分点、海风教育、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/337)\n\n<br/>\n\n### 说一下 JavaScript 继承都有哪些方法\n\n公司：易车、脉脉、微医、海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/336)\n\n<br/>\n\n### 已知函数 A，要求构造⼀个函数 B 继承 A\n\n```js\nfunction A(name) {\n  this.name = name;\n}\nA.prototype.getName = function () {\n  console.log(this.name);\n};\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/333)\n\n<br/>\n\n### 数组和对象转换为字符串结果\n\n```js\nvar arry = [];\nvar obj = {};\n// arry,obj 转成字符串的结果是什么？\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/332)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nvar a = {\n  name: \"A\",\n  fn() {\n    console.log(this.name);\n  },\n};\na.fn();\na.fn.call({ name: \"B\" });\nvar fn1 = a.fn;\nfn1();\n// 写出打印结果\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/331)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nlet int = 1;\nsetTimeout(function () {\n  console.log(int);\n  int = 2;\n  new Promise((resolve, reject) => {\n    resolve();\n  }).then(function () {\n    console.log(int);\n    int = 7;\n  });\n  console.log(int);\n});\nint = 3;\nconsole.log(int);\nnew Promise((resolve, reject) => {\n  console.log(int);\n  return resolve((int = 4));\n}).then(function (res) {\n  console.log(int);\n  int = 5;\n  setTimeout(function () {\n    console.log(int);\n    int = 8;\n  }); \n  return false;\n});\nconsole.log(int);\n// 写出打印结果\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/330)\n\n<br/>\n\n### 要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName\n\n```js\n/*\n\t已知对象A = {name: 'sfd', getName: function(){console.log(this.name)}},\n\t现要求⽤不同⽅式对A进⾏改造实现A.name发⽣变化时⽴即执⾏A.getName\n*/\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/329)\n\n<br/>\n\n### 修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）\n\n```js\nvar arrys = [];\nfor (var i = 0; i < 10; i++) {\n  arrys.push(function () {\n    return i;\n  });\n}\narrys.forEach(function (fn) {\n  console.log(fn());\n}); //本⾏不能修改\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/328)\n\n<br/>\n\n### 请给出识别 Email 的正则表达式\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/325)\n\n<br/>\n\n### 设计 AutoComplete 组件(又叫搜索组件、自动补全组件等)时，需要考虑什么问题？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/324)\n\n<br/>\n\n### 实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和\n\n```js\nclass TreeNode{\n  value:number\n  left?:TreeNode\n  right?:TreeNode\n}\nfunction getPathSum(root){\n  // your code\n}\n// 例子，一层二叉树如下定义，路径包括1 —> 2 ,1 -> 3\nconst node = new TreeNode();\nnode.value = 1;\nnode.left = new TreeNode();\nnode.left.value = 2;\nnode.right = new TreeNode();\nnode.right.value = 3;\ngetPathSum(node); // return 7 = (1+2) + (1+3)\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/323)\n\n<br/>\n\n### 请写出一下代码的打印结果\n\n```js\nfunction a(obj) {\n  obj.a = 2;\n  obj = { a: 3 };\n  return obj;\n}\nconst obj = { a: 1 };\na(obj);\nconsole.log(obj);\n```\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/324)\n\n<br/>\n\n### Promise 链式调用如何实现\n\n公司：滴滴\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/319)\n\n<br/>\n\n### 说一下对`BigInt`的理解，在什么场景下会使用\n\n公司：滴滴、高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/318)\n\n<br/>\n\n### null 是不是一个对象，如果是，如何判断一个对象是 null，不使用 JavaScript 提供的 api 如何进行判断\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/317)\n\n<br/>\n\n### 说一下对于堆栈的理解\n\n公司：滴滴、高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/)\n\n<br/>\n\n### `[] == ![]`为什么\n\n公司：高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/313)\n\n<br/>\n\n### 如何把真实 dom 转变为虚拟 dom，代码实现一下\n\n公司：高德\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/310)\n\n<br/>\n\n### 说一下错误监控的实现，错误监控的正确使用方式，日志如何分等级\n\n公司：高德\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/309)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nvar a = { x: 1 };\nvar b = a;\na.x = a = { n: 1 };\nconsole.log(a); // ?\nconsole.log(b); // ?\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/303)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nFunction.prototype.a = () = >{alert(1)}\nObject.prototype.b = () = >{alert(2)}\nfunction A(){};\nconst a = new A();\na.a();\na.b();\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/302)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nlet a = 0;\nconsole.log(a);\nconsole.log(b);\nlet b = 0;\nconsole.log(c);\nfunction c() {}\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/301)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nvar x = 10;\nfunction a(y) {\n  var x = 20;\n  return b(y);\n}\nfunction b(y) {\n  return x + y;\n}\na(20);\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/300)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\nconsole.log(1);\nsetTimeout(() => {\n  console.log(2);\n});\nprocess.nextTick(() => {\n  console.log(3);\n});\nsetImmediate(() => {\n  console.log(4);\n});\nnew Promise((resolve) => {\n  console.log(5);\n  resolve();\n  console.log(6);\n}).then(() => {\n  console.log(7);\n});\nPromise.resolve().then(() => {\n  console.log(8);\n  process.nextTick(() => {\n    console.log(9);\n  });\n});\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/299)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\n[1, 2, 3, 4, 5].map(parselnt);\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/298)\n\n<br/>\n\n### 请写出以下代码执行结果\n\n```js\ntypeof typeof typeof [];\n// 写出执行结果\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/297)\n\n<br/>\n\n\n### 说一下什么是死锁\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/295)\n\n<br/>\n\n### 实现以下代码\n\n```js\nfunction add() {\n  // your code\n}\nfunction one() {\n  // your code\n}\nfunction two() {\n  // your code\n}\nconsole.log(add(one(two()))); //3\nconsole.log(add(two(one()))); //3\n```\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/294)\n\n<br/>\n\n### 请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/293)\n\n<br/>\n\n### 实现一个函数柯里化\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/292)\n\n<br/>\n\n### 说一下对原型链的理解，画一个经典的原型链图示\n\n公司：脉脉、兑吧、快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/279)\n\n<br/>\n\n### 说一下 ajax/axios/fetch 的区别\n\n公司：脉脉\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/277)\n\n<br/>\n\n### 用 Promise 封装一个 ajax\n\n公司：脉脉\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/276)\n\n<br/>\n\n### 描述 DOM 事件捕获的具体流程\n\n公司：自如\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/272)\n\n<br/>\n\n### 请实现`$on,$emit`\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/269)\n\n<br/>\n\n### 实现 bind 方法，不能使用 call、apply、bind\n\n公司：自如、腾讯应用宝、快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/268)\n\n<br/>\n\n### 手写实现 sleep 函数\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/267)\n\n<br/>\n\n### 请写出原生 js 如何设置元素高度\n\n公司：自如\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/264)\n\n<br/>\n\n### 用原生 js 实现自定义事件\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/258)\n\n<br/>\n\n### 如何识别出字符串中的回车并进行换行？\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/257)\n\n<br/>\n\n### 输入一个日期 返回几秒前、几小时前、几天前、几月前\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/255)\n\n<br/>\n\n### 将 153812.7 转化为 153,812.7\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/244)\n\n<br/>\n\n### 数组有哪些方法 讲讲区别跟使用场景\n\n公司：掌门一对一\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/410)\n\n<br/>\n\n### 讲一下函数式编程\n\n公司：掌门一对一\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/408)\n\n<br/>\n\n### promise 跟 async await 的区别，使用场景 \n\n公司：网易、虎扑、沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/407)\n\n<br/>\n\n### async、await 如何进行错误捕获\n\n公司：虎扑\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/406)\n\n<br/>\n\n### weak-Set、weak-Map 和 Set、Map 区别\n\n公司：虎扑\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/399)\n\n<br/>\n\n### valueOf 与 toString 的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/395)\n\n<br/>\n\n### 怎么判断是一个空对象\n\n公司：菜鸟网络\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/392)\n\n<br/>\n\n### 请写出下面代码的执行结果\n\n```js\nsetTimeout(() => {\n  console.log(0);\n}, 0);\nnew Promise((res) => setTimeout(res, 0)).then(() => {\n  console.log(1);\n  setTimeout(() => {\n    console.log(2);\n  }, 0);\n  new Promise((r = r())).then(() => {\n    console.log(3);\n  });\n});\nsetTimeout(() => {\n  console.log(4);\n}, 0);\nnew Promise((res) => res()).then(() => {\n  console.log(5);\n});\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/391)\n\n<br/>\n\n### 请写出下面代码的执行结果\n\n```js\nfunction Foo() {\n  getName = function () {\n    alert(1);\n  };\n  return this;\n}\ngetName();\nFoo.getName = function () {\n  alert(2);\n};\nFoo.prototype.getName = function () {\n  alert(3);\n};\ngetName = function () {\n  alert(4);\n};\n\n// 请写出下面的输出结果\ngetName();\nFoo.getName();\nnew Foo().getName();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/390)\n\n<br/>\n\n### 请只用数组方法和 Math.random()在一条语句的情况下，实现生成给定位数的随机数组，例如生成 10 位随机数组[1.1,102.1,2,3,8,4,90,123,11,123],数组内数字随机生成。\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/387)\n\n<br/>\n\n### 实现一个 setter 方法\n\n```js\nlet setter = function (conten, key, value) {\n  // your code\n};\nlet n = {\n  a: {\n    b: {\n      c: { d: 1 },\n      bx: { y: 1 },\n    },\n    ax: { y: 1 },\n  },\n};\n// 修改值\nsetter(n, \"a.b.c.d\", 3);\nconsole.log(n.a.b.c.d); //3\nsetter(n, \"a.b.bx\", 1);\nconsole.log(n.b.bx); //1\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/386)\n\n<br/>\n\n### setTimeout 与 setInterval 区别\n\n公司：腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/384)\n\n<br/>\n\n### 项目中如何应用数据结构\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/382)\n\n<br/>\n\n### 闭包的核心是什么\n\n公司：寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/378)\n\n<br/>\n\n### 写出代码输出结果\n\n```js\nvar fullname = \"Test1\";\nvar obj = {\n  fullname: \"Test2\",\n  prop: {\n    fullname: \"Test3\",\n    getFullname: function () {\n      return this.fullname;\n    },\n  },\n};\nconsole.log(obj.prop.getFullname());\nvar test = obj.prop.getFullname;\nconsole.log(test());\n```\n\n公司：心娱、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/376)\n\n<br/>\n\n### 实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/375)\n\n<br/>\n\n### 什么是作用域链\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/374)\n\n<br/>\n\n### 介绍事件冒泡、事件代理、事件捕获，以及它们的关系\n\n公司：腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/373)\n\n<br/>\n\n### for..of 和 for...in 是否可以直接遍历对象，为什么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/372)\n\n<br/>\n\n### 在 map 中和 for 中调用异步函数的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/371)\n\n<br/>\n\n### gennerator yield 的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/370)\n\n<br/>\n\n### promise 的状态有哪些\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/369)\n\n<br/>\n\n### 在 ES6 中有哪些解决异步的方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/368)\n\n<br/>\n\n### es6 类继承中 super 的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/367)\n\n<br/>\n\n### cros 的简单请求和复杂请求的区别\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/366)\n\n<br/>\n\n### addEventListener 的第三个参数的作用\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/592)\n\n<br/>\n\n### 获取 id 为 netease 节点下所有的 checkbox 子元素(不用框架，注意兼容)\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/590)\n\n<br/>\n\n### 使用原型链如何实现继承\n\n公司：腾讯应用宝、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/589)\n\n<br/>\n\n### 如何获取一个对象的深度\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/588)\n\n<br/>\n\n### reduce 函数的功能，如何实现的，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/587)\n\n<br/>\n\n### 说一下 splice 和 slice 的功能用法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/586)\n\n<br/>\n\n### 面向对象的三要素是啥？都是啥意思？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/585)\n\n<br/>\n\n### 函数中的 this 有几种\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/584)\n\n<br/>\n\n### 如何同时获取 html 中的 h1,h2,h3,h4,h5,h6 中的内容\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/583)\n\n<br/>\n\n### JavaScript 的执行流程\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/582)\n\n<br/>\n\n### Promise.resolve(obj)，obj 有几种可能\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/581)\n\n<br/>\n\n### 写出代码执行结果\n\n```js\nnew Promise((resolve, reject) => {\n  reject(\"1\");\n})\n  .catch((e) => {\n    console.log(1);\n  })\n  .then((res) => {\n    console.log(2);\n  });\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/580)\n\n<br/>\n\n### nextTick 是在本次循环执行，还是在下次，setTimeout(() => {}, 0)呢？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/579)\n\n<br/>\n\n### 使用正则去掉 Dom 中的内联样式\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/570)\n\n<br/>\n\n### 写一个匹配 ip 地址的正则\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/569)\n\n<br/>\n\n### 写一个匹配 Html 标签的正则\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/568)\n\n<br/>\n\n### IOC 是啥，应用场景是啥？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/563)\n\n<br/>\n\n### 写出代码执行的打印结果\n\n```js\nfunction a(obj) {\n  obj.a = 2;\n  obj = { a: 3 };\n  return obj;\n}\nconst obj = { a: 1 };\na(obj);\nconsole.log(obj);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/561)\n\n<br/>\n\n### 实现函数\n\n```js\nd1,,,\nd2,,,\nd3,,,\n\n把上边的字符串输出1，2，3的和 //6\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/560)\n\n<br/>\n\n### 怎么实现 this 对象的深拷贝\n\n公司：阿里\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/539)\n\n<br/>\n\n### 使用 canvas 绘图时如何组织成通用组件\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/538)\n\n<br/>\n\n### 表单可以跨域吗\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/537)\n\n<br/>\n\n### 搜索请求如何处理？搜索请求中文如何请求？\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/536)\n\n<br/>\n\n### 介绍观察者模式\n\n公司：网易、海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/535)\n\n<br/>\n\n### 介绍中介者模式\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/534)\n\n<br/>\n\n### 观察者和订阅-发布的区别，各自用在哪里\n\n公司：网易、有赞、微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/533)\n\n<br/>\n\n### 通过什么做到并发请求\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/532)\n\n<br/>\n\n### 介绍 service worker\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/530)\n\n<br/>\n\n### 介绍事件代理以及优缺点，主要解决什么问题\n\n公司：网易、沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/526)\n\n<br/>\n\n### 介绍下 this 的各种情况\n\n公司：网易、蘑菇街\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/524)\n\n<br/>\n\n### 前端如何控制管理路由\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/523)\n\n<br/>\n\n### 使用路由时出现问题如何解决\n\n公司：网易\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/522)\n\n<br/>\n\n### JavaScript 异步解决方案的发展历程以及优缺点\n\n公司：滴滴、挖财、宝宝树、海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/515)\n\n<br/>\n\n### 介绍 AST（Abstract Syntax Tree）抽象语法树\n\n公司：滴滴\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/530)\n\n<br/>\n\n### 对 async、await 的理解，内部原理是怎样的？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/499)\n\n<br/>\n\n### == 和 ===的区别，什么情况下用相等==\n\n公司：头条、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/496)\n\n<br/>\n\n### bind、call、apply 的区别\n\n公司：头条、挖财、饿了么、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/495)\n\n<br/>\n\n### 介绍下原型链\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/494)\n\n<br/>\n\n### 介绍暂时性死区\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/488)\n\n<br/>\n\n### ES6 中的 map 和原生的对象有什么区别\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/487)\n\n<br/>\n\n### 对纯函数的理解\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/483)\n\n<br/>\n\n### 介绍 JSX\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/482)\n\n<br/>\n\n### 如何设计一个 localStorage，保证数据的时效性\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/477)\n\n<br/>\n\n### 实现 sum 方法，使 sum(x)(y),sum(x,y)返回的结果相同\n\n公司：有赞、网易、乘法云\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/475)\n\n<br/>\n\n### 两个对象如何比较\n\n公司：有赞\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/474)\n\n<br/>\n\n### 说一下变量的作用域链\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/473)\n\n<br/>\n\n### 介绍 dom 树对比\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/472)\n\n<br/>\n\n### 如何设计状态树\n\n公司：挖财\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/471)\n\n<br/>\n\n### Ajax 发生跨域要设置什么（前端）\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/462)\n\n<br/>\n\n### 加上 CORS 之后从发起到请求正式成功的过程\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/461)\n\n<br/>\n\n### Async 里面有多个 await 请求，可以怎么优化\n\n公司：沪江\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/460)\n\n<br/>\n\n### JavaScript 变量类型分为几种，区别是什么\n\n公司：沪江、酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/456)\n\n<br/>\n\n### JavaScript 里垃圾回收机制是什么，常用的是哪种，怎么处理的\n\n公司：沪江、寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/455)\n\n<br/>\n\n### ES5 和 ES6 有什么区别\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/448)\n\n<br/>\n\n### 取数组的最大值（ES5、ES6）\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/447)\n\n<br/>\n\n### some、every、find、filter、map、forEach 有什么区别\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/446)\n\n<br/>\n\n### 页面上生成一万个 button，并且绑定事件，如何做（JS 原生操作 DOM）？循环绑定时的 index 是多少，为什么，怎么解决？\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/445)\n\n<br/>\n\n### 页面上有一个 input，还有一个 p 标签，改变 input 后 p 标签就跟着变化，如何处理？监听 input 的哪个事件，在什么时候触发？\n\n公司：饿了么\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/444)\n\n<br/>\n\n### Promise 和 async/await，和 Callback 有什么区别\n\n公司：携程、海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/442)\n\n<br/>\n\n### 项目中对于用户体验做过什么优化\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/436)\n\n<br/>\n\n### 前后端通信使用什么方案\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/434)\n\n<br/>\n\n### RESTful 常用的 Method\n\n公司：喜马拉雅\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/433)\n\n<br/>\n\n### prototype 和proto区别\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/429)\n\n<br/>\n\n### new 的实现原理，动手实现一个 new\n\n公司：兑吧\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/428)\n\n<br/>\n\n### 如何实现 H5 手机端的适配\n\n公司：兑吧、网易、心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/427)\n\n<br/>\n\n### 如何去除 url 中的#号\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/423)\n\n<br/>\n\n### base64 为什么能提升性能，缺点\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/421)\n\n<br/>\n\n### 介绍 webp 这个图片文件格式\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/420)\n\n<br/>\n\n### 异步请求，低版本 fetch 如何低版本适配\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/418)\n\n<br/>\n\n### ajax 如何处理跨域？CORS 如何设置？\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/417)\n\n<br/>\n\n### jsonp 为什么不支持 post 方法\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/416)\n\n<br/>\n\n### 介绍 Immuable\n\n公司：兑吧\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/415)\n\n<br/>\n\n### 介绍 JS 全部数据类型，基本数据类型和引用数据类型的区别\n\n公司：微医、玄武科技、快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/613)\n\n<br/>\n\n### Array 是 Object 类型吗\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/612)\n\n<br/>\n\n### 说一下栈和堆的区别，垃圾回收时栈和堆的区别\n\n公司：微医、寺库\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/611)\n\n<br/>\n\n### 数组里面有 10 万个数据，取第一个元素和第 10 万个元素的时间相差多少\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/610)\n\n<br/>\n\n### Async/Await 怎么实现\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/609)\n\n<br/>\n\n### JavaScript 为什么要区分微任务和宏任务\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/608)\n\n<br/>\n\n### Promise 构造函数是同步还是异步执行，then 呢\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/607)\n\n<br/>\n\n### JavaScript 执行过程分为哪些阶段\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/605)\n\n<br/>\n\n### 词法作用域和 this 的区别\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/604)\n\n<br/>\n\n### loadsh 深拷贝实现原理\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/603)\n\n<br/>\n\n### ES6 中 let 块作用域是怎么实现的\n\n公司：微医\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/602)\n\n<br/>\n\n### formData 和原生的 ajax 有什么区别\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/779)\n\n<br/>\n\n### 介绍下表单提交，和 formData 有什么关系\n\n公司：宝宝树\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/778)\n\n<br/>\n\n### promise 如何实现 then 处理，动手实现 then\n\n公司：宝宝树\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/775)\n\n<br/>\n\n### 如何处理异常捕获\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/770)\n\n<br/>\n\n### 项目如何管理模块\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/769)\n\n<br/>\n\n### 尽可能多的写出判断数组的方法\n\n公司：海康威视、新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/768)\n\n<br/>\n\n### 介绍 localstorage 的 api\n\n公司：海康威视\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/767)\n\n<br/>\n\n### 使用原型最大的好处\n\n公司：蘑菇街\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/765)\n\n<br/>\n\n### 单例、工厂、观察者项目中实际场景\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/763)\n\n<br/>\n\n### 添加原生事件不移除为什么会内存泄露，还有哪些地方会存在内存泄漏\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/762)\n\n<br/>\n\n### setInterval 需要注意的点\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/761)\n\n<br/>\n\n### 定时器为什么是不精确的\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/760)\n\n<br/>\n\n### setTimeout(1)和 setTimeout(2)之间的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/759)\n\n<br/>\n\n### 介绍宏任务和微任务\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/758)\n\n<br/>\n\n### promise 里面和 then 里面执行有什么区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/757)\n\n<br/>\n\n### 介绍 class 和 ES5 的类以及区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/755)\n\n<br/>\n\n### 介绍 defineProperty 方法，什么时候需要用到\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/754)\n\n<br/>\n\n### for..in 和 object.keys 的区别\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/753)\n\n<br/>\n\n### 使用闭包特权函数的使用场景\n\n公司：酷家乐\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/752)\n\n<br/>\n\n### JavaScript 是什么范式语言\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/743)\n\n<br/>\n\n### Promise 有没有解决异步的问题\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/742)\n\n<br/>\n\n### Promise 和 setTimeout 的区别\n\n公司：海风教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/741)\n\n<br/>\n\n### 按照调用实例，实现下面的 Person 方法\n\n```js\nPerson(\"Li\");\n// 输出： Hi! This is Li!\n\nPerson(\"Dan\").sleep(10).eat(\"dinner\");\n// 输出：\n// Hi! This is Dan!\n// 等待10秒..\n// Wake up after 10\n// Eat dinner~\n\nPerson(\"Jerry\").eat(\"dinner\").eat(\"supper\");\n// 输出：\n// Hi This is Jerry!\n// Eat dinner~\n// Eat supper~\n\nPerson(\"Smith\").sleepFirst(5).eat(\"supper\");\n// 输出：\n// 等待5秒\n// Wake up after 5\n// Hi This is Smith!\n// Eat supper\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/738)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = {\n  bar: function () {\n    return this.baz;\n  },\n  baz: 1,\n};\n(function () {\n  console.log(typeof arguments[0]());\n})(yideng.bar);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/737)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction test() {\n  console.log(\"out\");\n}\n(function () { \n  if (false) {\n    function test() {\n      console.log(\"in\");\n    }\n    test();\n  }\n})();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/736)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar x = [typeof x, typeof y][1];\ntypeof x;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/735)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\n(function (x) {\n  delete x;\n  return x;\n})(1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/734)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar x = 1;\nif (function f() {}) {\n  x += typeof f;\n}\nx;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/733)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction f() {\n  return f;\n}\nnew f() instanceof f;\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/732)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nObject.prototype.a = \"a\";\nFunction.prototype.a = \"a1\";\nfunction Person() {}\nvar yideng = new Person();\nconsole.log(yideng.a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/731)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = [0];\nif (yideng) {\n  console.log(yideng == true);\n} else {\n  console.log(\"yideng\");\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/730)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nfunction yideng() {\n  return\n  {\n    a: 1;\n  }\n}\nvar result = yideng();\nconsole.log(result.a);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/729)\n\n<br/>\n\n### 按要求完成代码\n\n```js\nconst timeout = (ms) =>\n  new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve();\n    }, ms);\n  });\nconst ajax1 = () =>\n  timeout(2000).then(() => {\n    console.log(\"1\");\n    return 1;\n  });\nconst ajax2 = () =>\n  timeout(1000).then(() => {\n    console.log(\"2\");\n    return 2;\n  });\nconst ajax3 = () =>\n  timeout(2000).then(() => {\n    console.log(\"3\");\n    return 3;\n  });\nconst mergePromise = (ajaxArray) => {\n  // 1,2,3 done [1,2,3] 此处写代码 请写出ES6、ES3 2中解法\n};\nmergePromise([ajax1, ajax2, ajax3]).then((data) => {\n  console.log(\"done\");\n  console.log(data); // data 为[1,2,3]\n});\n// 执行结果为：1 2 3 done [1,2,3]\n```\n\n公司：阿里\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/728)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```html\n<script>\n  //使用未定义的变量yideng\n  yideng;\n  console.log(1);\n</script>\n<script>\n  console.log(2);\n</script>\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/727)\n\n<br/>\n\n### 请写出正确的执行结果\n\n```js\nvar yideng = Array(3);\nyideng[0] = 2;\nvar result = yideng.map(function (elem) {\n  return \"1\";\n});\nconsole.log(result);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/726)\n\n<br/>\n\n### 请修改代码能跳出死循环\n\n```js\nwhile (1) {\n  switch (\"yideng\") {\n    case \"yideng\":\n    //禁止直接写一句break\n  }\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/725)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\n[1 < 2 < 3, 3 < 2 < 1];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/723)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\n2 == [[[2]]];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/722)\n\n<br/>\n\n### 计算以上字节每位 ✈️ 的起码点，并描述这些字节的起码点代表什么\n\n```js\nconsole.log(\"✈️\".length);\n// 1.计算以上字节每位✈️的起码点\n// 2.描述这些字节的起码点代表什么\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/721)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nvar yidenga = Function.length,\n  yidengb = new Function().length;\nconsole.log(yidenga === yidengb);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/720)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nvar length = 10;\nfunction fn() {\n  console.log(this.length);\n}\nvar yideng = {\n  length: 5,\n  method: function (fn) {\n    fn();\n    arguments[0]();\n  },\n};\nyideng.method(fn, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/719)\n\n<br/>\n\n### 介绍箭头函数的 this\n\n公司：百分点\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/747)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\nvar yi = new Date(\"2018-08-20\"),\n  deng = new Date(2018, 08, 20);\n[yi.getDay() === deng.getDay(), yi.getMonth() === deng.getMonth()];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/718)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nfor (\n  let i = (setTimeout(() => console.log(\"a->\", i)), 0);\n  setTimeout(() => console.log(\"b->\", i)), i < 2;\n  i++\n) {\n  i++;\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/717)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因\n\n```js\n[typeof null, null instanceof Object];\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/716)\n\n<br/>\n\n### 请问当前 textarea 文本框展示的内容是什么？\n\n```html\n<textarea maxlength=\"10\" id=\"yideng\"></textarea>\n<script>\n  document.getElementById(\"yideng\").value = \"a\".repeat(10) + \"b\";\n</script>\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/715)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nfunction sidEffecting(ary) {\n  arr[0] = arr[2];\n}\nfunction yideng(a, b, c = 3) {\n  c = 10;\n  sidEffecting(arguments);\n  return a + b + c;\n}\nyideng(1, 1, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/714)\n\n<br/>\n\n### 请写出代码正确执行结果\n\n```js\nyideng();\nvar flag = true;\nif (flag) {\n  function yideng() {\n    console.log(\"yideng1\");\n  }\n} else {\n  function yideng() {\n    console.log(\"yideng2\");\n  }\n}\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/713)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释为什么\n\n```js\nvar min = Math.min(),\n  max = Math.max();\nconsole.log(min < max);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/712)\n\n<br/>\n\n### 请手写实现一个拖拽\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/711)\n\n<br/>\n\n### 请手动实现一个浅拷贝\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/710)\n\n<br/>\n\n### 介绍 instanceof 原理，并手动实现\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/709)\n\n<br/>\n\n### 请实现一个 JSON.stringfy\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/708)\n\n<br/>\n\n### 请实现一个 JSON.parse\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/707)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nconsole.log(\"hello\" + (1 < 2) ? \"word\" : \"me\");\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/700)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nvar a = (b = 1);\n(function () {\n  var a = (b = 2);\n})();\nconsole.log(a, b);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/699)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nif ([] instanceof Object) {\n  console.log(typeof null);\n} else {\n  console.log(typeof undefined);\n}\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/698)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nvar obj = {};\nobj.name = \"first\";\nvar peo = obj;\npeo.name = \"second\";\nconsole.log(obj.name);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/697)\n\n<br/>\n\n### 请写出代码的正确执行结果，并解释原因？\n\n```js\nfunction say(word) {\n  let word = \"hello\";\n  console.log(word);\n}\nsay(\"hello Lili\");\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/696)\n\n<br/>\n\n### 请写出代码正确执行结果，并解释原因？\n\n```js\nfunction fun(n, o) {\n  console.log(o);\n  return {\n    fun: function (m) {\n      return fun(m, n);\n    },\n  };\n}\nvar b = fun(0).fun(1).fun(2).fun(3);\n```\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/695)\n\n<br/>\n\n### JavaScript 中如何模拟实现方法的重载\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/689)\n\n<br/>\n\n### 请解释 JSONP 的工作原理\n\n公司：会小二、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/688)\n\n<br/>\n\n### 用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/687)\n\n<br/>\n\n### 实现一个打点计时器\n\n```js\n/* \n  1.从start至end,每隔100毫秒console.log一个数字，每次数字增幅为1\n  2.返回的对象中需要包含一个cancel方法，用于停止定时操作\n  3.第一个数字需要立即输出\n*/\n```\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/685)\n\n<br/>\n\n### JavaScript 写一个单例模式，可以具体到某一个场景\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/683)\n\n<br/>\n\n### JavaScript 基本数据类型都有哪些？用 typeOf 判断分别显示什么？\n\n公司：会小二、安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/682)\n\n<br/>\n\n### 怎么判断引用类型数据，兼容判断原始类型数据呢？\n\n公司：会小二\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/681)\n\n<br/>\n\n### 概述异步编程模型\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/674)\n\n<br/>\n\n### 在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/673)\n\n<br/>\n\n### 分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/672)\n\n<br/>\n\n### 简述 JavaScript 中的函数的几种调用方式\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/671)\n\n<br/>\n\n### 编写一个 Person 类，并创建两个不同的 Person 对象\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/670)\n\n<br/>\n\n### 手写实现 call\n\n公司：腾讯应用宝\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/666)\n\n<br/>\n\n### 手写实现 apply\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/665)\n\n<br/>\n\n### 一个 dom 必须要操作几百次，该如何解决，如何优化？\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/664)\n\n<br/>\n\n### 页面埋点怎么实现\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/660)\n\n<br/>\n\n### 除了 jsonp、postmessage 后端控制，怎么实现跨页面通讯\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/659)\n\n<br/>\n\n### 说一下 let、const 的实现，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/655)\n\n<br/>\n\n### addEventListener 再 removeListener 会不会造成内存泄漏\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/651)\n\n<br/>\n\n### scrollview 如何进行性能优化(例如 page=100 时，往上滚动)\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/650)\n\n<br/>\n\n### 原生 JavaScript 获取 ul 中的第二个 li 里边的 p 标签的内容\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/648)\n\n<br/>\n\n### 说下 offsetWith 和 clientWidth、offsetHeight 和 clientHeight 的区别，说说 offsetTop，offsetLeft，scrollWidth、scrollHeight 属性都是干啥的\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/647)\n\n<br/>\n\n### 写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/643)\n\n<br/>\n\n### 数组截取插入 splice，push 返回值，数组的栈方法、队列方法、排序方法、操作方法、迭代方法说一下\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/642)\n\n<br/>\n\n### 判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/641)\n\n<br/>\n\n### 判断一个变量的类型，写个方法用 Object.prototype.toString 判断传入数据的类型？Object.prototype.toString.call(Symbol) 返回什么？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/640)\n\n<br/>\n\n### 对作用域和闭包的理解，解释下 let 和 const 的块级作用域\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/639)\n\n<br/>\n\n### 以下代码输出什么？\n\n```js\nsetTimeout(function () {\n  console.log(1);\n}, 0);\nnew Promise(function executor(resolve) {\n  console.log(2);\n  for (var i = 0; i < 10000; i++) {\n    i == 9999 && resolve();\n  }\n  console.log(3);\n}).then(function () {\n  console.log(4);\n});\nconsole.log(5);\n```\n\n公司：心娱\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/638)\n\n<br/>\n\n### switch case，case 具体是怎么比较的，哪些情况下会走到 default\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/637)\n\n<br/>\n\n### 说下 typeof()各种类型的返回值？instanceof 呢？\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/636)\n\n<br/>\n\n### if([] == 0), [1,2] == \"1,2\", if([]), [] == 0 具体是怎么对比的\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/635)\n\n<br/>\n\n### 如何加快页面渲染速度，都有哪些方式\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/634)\n\n<br/>\n\n### generator 的实现原理\n\n公司：滴滴、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/633)\n\n<br/>\n\n### 判断是否是数组的方法\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/627)\n\n<br/>\n\n### 手写 EventEmitter 实现\n\n公司：头条、亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/624)\n\n<br/>\n\n### 给出的两行代码为什么这么输出\n\n```js\nvar s = \"laohu\";\ns[0] = 1;\nconsole.log(s); //laohu\nvar s = \"laohu\";\ns += 2020;\nconsole.log(s); // laohu2020\n// 上面两行为什么这么输出\n```\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/622)\n\n<br/>\n\n### 动画性能如何检测\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/621)\n\n<br/>\n\n### 平时都用到了哪些设计模式\n\n公司：酷狗、沪江、58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/619)\n\n<br/>\n\n### 对 service worker 的理解\n\n公司：酷狗\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/617)\n\n<br/>\n\n### 单点登录实现原理\n\n公司：CVTE\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/862)\n\n<br/>\n\n### 尾递归实现\n\n公司：CVTE\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/861)\n\n<br/>\n\n### 有 1000 个 dom，需要更新其中的 100 个，如何操作才能减少 dom 的操作？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/860)\n\n<br/>\n\n### 商城的列表页跳转到商品的详情页，详情页数据接口很慢，前端可以怎么优化用户体验？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/859)\n\n<br/>\n\n### 多个 tab 只对应一个内容框，点击每个 tab 都会请求接口并渲染到内容框，怎么确保频繁点击 tab 但能够确保数据正常显示？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/858)\n\n<br/>\n\n### 请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)\n\n公司：爱范儿、道一云\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/854)\n\n<br/>\n\n### 完成一个表达式，验证用户输入是否是电子邮箱\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/853)\n\n<br/>\n\n### 原生实现 ES5 的 Object.create()方法\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/852)\n\n<br/>\n\n### 如何记录前端在用户浏览器上发生的错误并汇报给服务器？\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/850)\n\n<br/>\n\n### 有哪几种方式可以解决跨域问题？(描述对应的原理)\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/849)\n\n<br/>\n\n### 按要求完成题目\n\n```js\n/* \n  a)在不使用vue、react的前提下写代码解决一下问题\n    一个List页面上，含有1000个条目的待办列表，现其中100项在同一时间达到了过期时间，需要在对应项的text-node里添加“已过期”文字。需要尽可能减少dom重绘次数以提升性能。\n  b)尝试使用vue或react解决上述问题\n*/\n```\n\n公司：爱范儿\n\n分类：JavaScript、Vue、React、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/848)\n\n<br/>\n\n### 你是如何组织 JavaScript 代码的？（可以从模块、组件、模式、编程思想等方面回答）\n\n公司：爱范儿\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/847)\n\n<br/>\n\n### 填充代码实现 template 方法\n\n```js\nvar str = \"您好，<%=name%>。欢迎来到<%=location%>\";\nfunction template(str) {\n  // your code\n}\nvar compiled = template(srt);\n// compiled的输出值为：“您好，张三。欢迎来到网易游戏”\ncompiled({ name: \"张三\", location: \"网易游戏\" });\n```\n\n公司：网易\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/844)\n\n<br/>\n\n### 请描述下为什么页面需要做优化？并写出常用的页面优化实现方案？\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/841)\n\n<br/>\n\n### 请列出至少 5 个 JavaScript 常用的内置对象，说明用途\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/838)\n\n<br/>\n\n### 请描述下 JavaScript 中 Scope、Closure、Prototype 概念，并说明 JavaScript 封装、继承实现原理。\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/837)\n\n<br/>\n\n### 请列出目前主流的 JavaScript 模块化实现的技术有哪些？说出它们的区别？\n\n公司：玄武科技\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/836)\n\n<br/>\n\n### 请用 JavaScript 代码实现事件代理\n\n公司：玄武科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/832)\n\n<br/>\n\n### 实现格式化输出，比如输入 999999999，输出 999,999,999\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/831)\n\n<br/>\n\n### 使用 JavaScript 实现 cookie 的设置、读取、删除\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/830)\n\n<br/>\n\n### 请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"http://iauto360.cn/index.php?key0=0&key1=1&key2=2\"\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/829)\n\n<br/>\n\n### 如何实现 a,b 两个变量的交换\n\n公司：高思教育\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/825)\n\n<br/>\n\n### 给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符\n\n公司：高思教育\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/822)\n\n<br/>\n\n### 微任务和宏任务的区别\n\n公司：58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/814)\n\n<br/>\n\n### 原生 JavaScript 实现图片懒加载的思路\n\n公司：安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/809)\n\n<br/>\n\n### 回调函数和任务队列的区别\n\n公司：安居客\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/808)\n\n<br/>\n\n### 写出下面代码的输出结果\n\n```js\n//counter.js\nlet counter = 10;\nexport default counter;\n\n//index.js\nimport myCounter from \"./counter\";\nmyCounter += 1;\nconsole.log(myCounter);\n```\n\n公司：快手\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/802)\n\n<br/>\n\n### 有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”\n\n```js\nfunction A() {\n  console.log(\"调用了函数A\");\n}\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/800)\n\n<br/>\n\n### 在浏览器执行以下代码，写出打印结果\n\n```js\nconsole.log(\"start\");\nsetTimeout(() => {\n  console.log(\"children2\");\n  Promise.resolve().then(() => {\n    console.log(\"children3\");\n  });\n}, 0);\nnew Promise(function (resolve, reject) {\n  console.log(\"children4\");\n  setTimeout(function () {\n    console.log(\"children5\");\n    resolve(\"children6\");\n  }, 0);\n}).then((res) => {\n  console.log(\"children7\");\n  setTimeout(() => {\n    console.log(res);\n  }, 0);\n});\n```\n\n公司：新东方\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/799)\n\n<br/>\n\n### 请写出弹出值，并解释为什么？\n\n```js\nalert(a);\na();\nvar a = 3;\nfunction a() {\n  alert(10);\n}\nalert(a);\na = 6;\na();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/794)\n\n<br/>\n\n### 写出输出值，并解释为什么\n\n```js\nfunction test(m) {\n  m = { v: 5 };\n}\nvar m = { k: 30 };\ntest(m);\nalert(m.v);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/793)\n\n<br/>\n\n### 请写出代码执⾏结果，并解释为什么\n\n```js\nfunction yideng() {\n  console.log(1);\n}\n(function () {\n  if (false) {\n    function yideng() {\n      console.log(2);\n    }\n  }\n  console.log(typeof yideng);\n  yideng();\n})();\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/792)\n\n<br/>\n\n### 请写出代码执⾏结果，并解释为什么\n\n```js\nfunction fn() {\n  console.log(this.length);\n}\nvar person = {\n  length: 5,\n  method: function (fn) {\n    fn();\n  },\n};\nperson.method(fn, 1);\n```\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/790)\n\n<br/>\n\n### 给定⼀个⼤⼩为 n 的数组，找到其中的众数。众数是指在数组中出现次数⼤于 n/2 的元素\n\n分类：数据结构与算反\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/789)\n\n<br/>\n\n### 原生实现addClass,用多种方法\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/783)\n\n<br/>\n\n### 实现一个倒计时,setInterval实现的话，如何消除时间误差\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/871)\n\n<br/>\n\n### 函数中的arguments是数组吗？若不是，如何将它转化为真正的数组？\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/866)\n\n<br/>\n\n### 请写出以下代码的打印结果\n\n```js\nif([] == false){console.log(1)};\nif({} == false) {console.log(2)};\nif([]){console.log(3)};\nif([1] == [1]){console.log(4)};\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/865)\n\n<br/>\n\n### 以最小的改动解决以下代码的错误(可以使用ES6)\n\n```js\nconst obj = {\n  name:\"jsCoder\",\n  skill:[\"es6\",\"react\",\"angular\"],\n  say:function(){\n    for(var i = 0,len = this.skill.length;i<len;i++){\n      setTimeout(function(){\n        console.log('No.' + i + this.name);\n        console.log(this.skill[i]);\n        console.log('----------------');\n      },0);\n      console.log(i);\n    }\n  }\n}\nobj.say();\n\n/* \n  期望得到下面的结果\n  1\n  2\n  3\n  No.1 jsCoder\n  es6\n  ----------------\n  No.2 jsCoder\n  react\n  ----------------\n  No.3 jsCoder\n  angular\n*/\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/864)\n\n<br/>\n\n### 实现Function 原型的bind方法，使得以下程序最后能输出“success”\n\n```js\nfunction Animal(name,color){\n  this.name = name;\n  this.color = color;\n}\nAnimal.prototype.say = function(){\n  return `I'm a ${this.color}${this.name}`;\n}\nconst Cat = Animal.bind(null,'cat');\nconst cat = new Cat('white');\nif(cat.say() === \"I'm white cat\" && cat instanceof Cat && cat instanceof Animal){\n  console.log('sunccess');\n}\n```\n\n公司：头条\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/863)\n\n<br/>\n\n### 文件上传如何做断点续传\n\n公司：网易、洋葱学院\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/236)\n\n<br/>\n\n### 列举 3 种强制类型转换和 2 种隐式类型转换\n\n公司：58\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/812)\n\n<br/>"
  },
  {
    "path": "summarry/node.md",
    "content": "# Node题目汇总\n\n- [React SSR实现过程？原理是什么？有什么注意事项？](#react-ssr实现过程原理是什么有什么注意事项)\n- [Node性能如何进监控以及优化？](#node性能如何进监控以及优化)\n- [说一下事件循环机制(node、浏览器)](#说一下事件循环机制node浏览器)\n- [如何封装 node 中间件](#如何封装-node-中间件)\n- [node 中间层怎样做的请求合并转发](#node-中间层怎样做的请求合并转发)\n- [是否熟悉 Node，主要做过哪些业务，平时用过什么包？](#是否熟悉-node主要做过哪些业务平时用过什么包)\n- [手动实现一个 Promisify 函数](#手动实现一个-promisify-函数)\n- [介绍一下 node 核心模块（主要是 stream）](#介绍一下-node-核心模块主要是-stream)\n- [node 如何做错误监控（运行时与其他）如何生成日志，日志等级](#node-如何做错误监控运行时与其他如何生成日志日志等级)\n- [Node 的适用场景以及优缺点是什么？](#node-的适用场景以及优缺点是什么)\n- [koa2 和 express 区别](#koa2-和-express-区别)\n- [上传文件的 Content_Type 什么，node 如何拿到上传的文件内容(不适用第三方插件)？文件内容是一次行传输过去的么](#上传文件的-content_type-什么node-如何拿到上传的文件内容不适用第三方插件文件内容是一次行传输过去的么)\n- [介绍下 pm2，pm2 依据什么重启服务](#介绍下-pm2pm2-依据什么重启服务)\n- [什么是微服务，微服务跟单体应用的区别是啥，用微服务有啥好处？](#什么是微服务微服务跟单体应用的区别是啥用微服务有啥好处)\n- [使用过的 koa2 中间件，中间件的原理是什么？](#使用过的-koa2-中间件中间价的原理是什么)\n- [koa-body 原理](#koa-body-原理)\n- [有没有写过中间件，介绍下自己写过的中间件](#有没有写过中间件介绍下自己写过的中间件)\n- [有没有涉及到 Cluster，说一下你的理解](#有没有涉及到-cluster说一下你的理解)\n- [master 挂了的话 pm2 怎么处理](#master-挂了的话-pm2-怎么处理)\n- [Node 如何和 MySQL 进行通信](#node-如何和-mysql-进行通信)\n- [服务端渲染 SSR](#服务端渲染-ssr)\n- [koa 中 response.send、response.rounded、response.json 发生了什么事，浏览器为什么能识别到它是一个 json 结构或是 html](#koa-中-responsesendresponseroundedresponsejson-发生了什么事浏览器为什么能识别到它是一个-json-结构或是-html)\n- [koa-bodyparser 如何解析 request](#koa-bodyparser-如何解析-request)\n- [pm2 怎么做进程管理，进程挂掉怎么处理](#pm2-怎么做进程管理进程挂掉怎么处理)\n- [不用 pm2 怎么做进程管理](#不用-pm2-怎么做进程管理)\n- [jsonp 方案需要服务端怎么配合](#jsonp-方案需要服务端怎么配合)\n- [node 接口转发有无做什么优化？node 起服务如何保证稳定性，平缓降级，重启等](#node-接口转发有无做什么优化node-起服务如何保证稳定性平缓降级重启等)\n- [介绍 node 文件查找优先级](#介绍-node-文件查找优先级)\n- [npm2 和 npm3 有什么区别](#npm2-和-npm3有什么区别)\n- [Node 不支持哪些 ES6 语法](#node-不支持哪些-es6-语法)\n- [node 如何进行跨域通信](#node-如何进行跨域通信)\n- [介绍 koa2，原理是什么？](#介绍-koa2原理是什么)\n- [如何对相对路径引用进行优化](#如何对相对路径引用进行优化)\n\n### React SSR实现过程？原理是什么？有什么注意事项？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/870)\n\n<br/>\n\n### Node性能如何进监控以及优化？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/869)\n\n<br/>\n\n### 说一下事件循环机制(node、浏览器)\n\n公司：滴滴、伴鱼、高德、自如、虎扑、58\n\n分类：Node、JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/26)\n\n<br/>\n\n### 如何封装 node 中间件\n\n公司：滴滴、酷狗\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/27)\n\n<br/>\n\n### node 中间层怎样做的请求合并转发\n\n公司：易车\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/28)\n\n<br/>\n\n### 是否熟悉 Node，主要做过哪些业务，平时用过什么包？\n\n公司：快手\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/209)\n\n<br/>\n\n### 手动实现一个 Promisify 函数\n\n公司：高德\n\n分类：Node、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/306)\n\n<br/>\n\n### 介绍一下 node 核心模块（主要是 stream）\n\n公司：自如、菜鸟网络\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/266)\n\n<br/>\n\n### node 如何做错误监控（运行时与其他）如何生成日志，日志等级\n\n公司：自如\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/261)\n\n<br/>\n\n### Node 的适用场景以及优缺点是什么？\n\n公司：道一云\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/260)\n\n<br/>\n\n### koa2 和 express 区别\n\n公司：菜鸟网络、海风教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/393)\n\n<br/>\n\n### 上传文件的 Content_Type 什么，node 如何拿到上传的文件内容(不适用第三方插件)？文件内容是一次行传输过去的么\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/591)\n\n<br/>\n\n### 介绍下 pm2，pm2 依据什么重启服务\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/565)\n\n<br/>\n\n### 什么是微服务，微服务跟单体应用的区别是啥，用微服务有啥好处？\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/564)\n\n<br/>\n\n### 使用过的 koa2 中间件，中间件的原理是什么？\n\n公司：阿里、宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/559)\n\n<br/>\n\n### koa-body 原理\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/558)\n\n<br/>\n\n### 有没有写过中间件，介绍下自己写过的中间件\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/557)\n\n<br/>\n\n### 有没有涉及到 Cluster，说一下你的理解\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/556)\n\n<br/>\n\n### master 挂了的话 pm2 怎么处理\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/555)\n\n<br/>\n\n### Node 如何和 MySQL 进行通信\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/554)\n\n<br/>\n\n### 服务端渲染 SSR\n\n公司：阿里\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/552)\n\n<br/>\n\n### koa 中 response.send、response.rounded、response.json 发生了什么事，浏览器为什么能识别到它是一个 json 结构或是 html\n\n公司：滴滴\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/505)\n\n<br/>\n\n### koa-bodyparser 如何解析 request\n\n公司：滴滴\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/504)\n\n<br/>\n\n### pm2 怎么做进程管理，进程挂掉怎么处理\n\n公司：挖财\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/465)\n\n<br/>\n\n### 不用 pm2 怎么做进程管理\n\n公司：挖财\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/464)\n\n<br/>\n\n### jsonp 方案需要服务端怎么配合\n\n公司：沪江\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/463)\n\n<br/>\n\n### node 接口转发有无做什么优化？node 起服务如何保证稳定性，平缓降级，重启等\n\n公司：微医\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/597)\n\n<br/>\n\n### 介绍 node 文件查找优先级\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/772)\n\n<br/>\n\n### npm2 和 npm3+有什么区别\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/771)\n\n<br/>\n\n### Node 不支持哪些 ES6 语法\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/702)\n\n<br/>\n\n### node 如何进行跨域通信\n\n公司：高思教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/828)\n\n<br/>\n\n### 介绍 koa2，原理是什么？\n\n公司：兑吧、海风教育\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/419)\n\n<br/>\n\n### 如何对相对路径引用进行优化\n\n公司：宝宝树\n\n分类：Node\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/773)\n\n<br/>"
  },
  {
    "path": "summarry/other.md",
    "content": "# 其它题目汇总\n\n- [Umi 和 dva 分别是干嘛用的？为什么会有 umi dva 的出现？使用起来有什么不方便的地方吗？](#umi-和-dva-分别是干嘛用的为什么会有-umi-dva-的出现使用起来有什么不方便的地方吗)\n- [mysql 和 mongodb 区别](#mysql-和-mongodb-区别)\n- [Webp 格式的图片怎么生成，使用有什么兼容性问题，如何怎么解决](#webp-格式的图片怎么生成使用有什么兼容性问题如何怎么解决)\n- [怎么理解 to B 和 to C 的业务](#怎么理解-to-b-和-to-c-的业务)\n- [如果有一个项目，随着业务的增长越来越大，怎么办，如何来进行一个拆分或者处理](#如果有一个项目随着业务的增长越来越大怎么办如何来进行一个拆分或者处理)\n- [gitlab 分支管理，线上如果发生 bug 怎么解决？](#gitlab-分支管理线上如果发生-bug-怎么解决)\n- [mvvm 模型和 mvc 模型区别](#mvvm-模型和-mvc-模型区别)\n- [如何实现一个 mvvm 模型](#如何实现一个-mvvm-模型)\n- [RN、Weex、Dart 的优缺点](#rnweexdart-的优缺点)\n- [使用 typescript 的装饰器能否实现函数调用前出现加载动画，调用后关闭，如果能，这个加载动画的控制代码是放在哪种装饰器上呢](#使用-typescript-的装饰器能否实现函数调用前出现加载动画调用后关闭如果能这个加载动画的控制代码是放在哪种装饰器上呢)\n- [unicode 和 utf8 的关系](#unicode-和-utf8-的关系)\n- [是否了解 docker，介绍一下](#是否了解-docker介绍一下)\n- [项目中如何处理安全问题](#项目中如何处理安全问题)\n- [整个前端性能提升大致分几类](#整个前端性能提升大致分几类)\n- [以下 axios 的特点正确的有哪些？(多选题)](#以下-axios-的特点正确的有哪些多选题)\n- [安卓 Activity 之间数据是怎么传递的](#安卓-activity-之间数据是怎么传递的)\n- [说下安卓系统中的 webview](#安卓-40-到-60-过程中-webview-对-js-兼容性的变化)\n- [WebView 和原生是如何通信](#webview-和原生是如何通信)\n- [Linux 754 介绍](#linux-754-介绍)\n- [如何做工程上的优化](#如何做工程上的优化)\n- [Access-Control-Allow-Origin 在服务端哪里配置](#access-control-allow-origin-在服务端哪里配置)\n- [前端和后端怎么联调](#前端和后端怎么联调)\n- [介绍 MVP 怎么组织](#介绍-mvp-怎么组织)\n- [进程和线程的区别](#进程和线程的区别)\n- [使用 typescript 的优势有哪些](#使用-typescript-的优势有哪些)\n- [谈下淘宝和京东页面的实现](#谈下淘宝和京东页面的实现)\n- [如何监控 MySql、Redis 性能](#如何监控-mysqlredis-性能)\n- [移动 web 开发时如何调试？了解哪些多屏适配方案？](#移动-web-开发时如何调试了解哪些多屏适配方案)\n- [用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定](#用-typescript-实现函数-caller接收一个函数作为第一个参数其返回参数类型由接收的函数参数决定)\n- [谈一下微信小程序的架构以及为什么要用到双线程](#谈一下微信小程序的架构以及为什么要用到双线程)\n- [小程序里面打开页面最多多少，生命周期、常用的 api 列举几个？](#小程序里面打开页面最多多少生命周期常用的-api-列举几个)\n\n### Umi 和 dva 分别是干嘛用的？为什么会有 umi dva 的出现？使用起来有什么不方便的地方吗？\n\n公司：洋葱学院\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/239)\n\n<br/>\n\n### mysql 和 mongodb 区别\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/233)\n\n<br/>\n\n### Webp 格式的图片怎么生成，使用有什么兼容性问题，如何怎么解决\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/225)\n\n<br/>\n\n### 怎么理解 to B 和 to C 的业务\n\n公司：顺丰\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/154)\n\n<br/>\n\n### 如果有一个项目，随着业务的增长越来越大，怎么办，如何来进行一个拆分或者处理\n\n公司：顺丰\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/153)\n\n<br/>\n\n### gitlab 分支管理，线上如果发生 bug 怎么解决？\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/316)\n\n<br/>\n\n### mvvm 模型和 mvc 模型区别\n\n公司：虎扑\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/398)\n\n<br/>\n\n### 如何实现一个 mvvm 模型\n\n公司：虎扑\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/397)\n\n<br/>\n\n### RN、Weex、Dart 的优缺点\n\n公司：腾讯应用宝、寺库\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/380)\n\n<br/>\n\n### 使用 typescript 的装饰器能否实现函数调用前出现加载动画，调用后关闭，如果能，这个加载动画的控制代码是放在哪种装饰器上呢\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/567)\n\n<br/>\n\n### unicode 和 utf8 的关系\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/566)\n\n<br/>\n\n### 是否了解 docker，介绍一下\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/562)\n\n<br/>\n\n### 项目中如何处理安全问题\n\n公司：阿里、喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/540)\n\n<br/>\n\n### 整个前端性能提升大致分几类\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/518)\n\n<br/>\n\n### 以下 axios 的特点正确的有哪些？(多选题)\n\n```js\nA.axios 可以跨平台，支持 promise 的所有 API\nB.可以拦截请求和响应\nC.可以转换请求数据和响应数据，并对响应回来的内容自动转换为 json 类型的数据\nD.安全性更高，客户端支持防御 XSRF\n```\n\n公司：道一云\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/512)\n\n<br/>\n\n### 安卓 Activity 之间数据是怎么传递的\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/502)\n\n<br/>\n\n### 说下安卓系统中的 webview\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/501)\n\n<br/>\n\n### WebView 和原生是如何通信\n\n公司：滴滴\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/500)\n\n<br/>\n\n### Linux 754 介绍\n\n公司：有赞\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/493)\n\n<br/>\n\n### 如何做工程上的优化\n\n公司：挖财\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/469)\n\n<br/>\n\n### Access-Control-Allow-Origin 在服务端哪里配置\n\n公司：喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/432)\n\n<br/>\n\n### 前端和后端怎么联调\n\n公司：喜马拉雅\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/431)\n\n<br/>\n\n### 介绍 MVP 怎么组织\n\n公司：宝宝树\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/776)\n\n<br/>\n\n### 进程和线程的区别\n\n公司：海风教育\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/740)\n\n<br/>\n\n### 使用 typescript 的优势有哪些\n\n公司：快手\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/630)\n\n<br/>\n\n### 谈下淘宝和京东页面的实现\n\n公司：酷狗\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/620)\n\n<br/>\n\n### 如何监控 MySql、Redis 性能\n\n公司：酷狗\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/618)\n\n<br/>\n\n### 移动 web 开发时如何调试？了解哪些多屏适配方案？\n\n公司：爱范儿\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/846)\n\n<br/>\n\n### 用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定\n\n公司：快手\n\n分类：其它、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/801)\n\n<br/>\n\n### 谈一下微信小程序的架构以及为什么要用到双线程\n\n公司：快手\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/205)\n\n<br/>\n\n### 小程序里面打开页面最多多少，生命周期、常用的 api 列举几个？\n\n公司：饿了么、安居客\n\n分类：其它\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/811)\n\n<br/>"
  },
  {
    "path": "summarry/program.md",
    "content": "# 编程题目汇总\n\n- [Css 如何画出一个扇形，动手实现下](#css-如何画出一个扇形动手实现下)\n- [使用 Css 实现一个水波纹效果](#使用-css-实现一个水波纹效果)\n- [动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)](#动手实现一个左右固定100px中间自适应的三列布局至少三种)\n- [屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法](#屏幕占满和未占满的情况下使-footer-固定在底部尽量多种方法)\n- [Css 画一个三角形](#css-画一个三角形)\n- [Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准](#css-实现多列等高布局要求元素实际占用的高度以多列中较高的为准)\n- [用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定](#用-typescript-实现函数-caller接收一个函数作为第一个参数其返回参数类型由接收的函数参数决定)\n- [手动实现一个 Promisify 函数](#手动实现一个-promisify-函数)\n- [介绍防抖节流原理、区别以及应用，并用JavaScript进行实现](#介绍防抖节流原理区别以及应用并用javascript进行实现)\n- [介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise](#介绍下-promise-的特性优缺点内部是如何实现的动手实现-promise)\n- [实现 Promise.all](#实现-promiseall)\n- [请实现如下的函数](#请实现如下的函数)\n- [设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2](#设计一个函数奇数次执行的时候打印-1偶数次执行的时候打印-2)\n- [实现 Promise.then](#实现-promisethen)\n- [给定起止日期，返回中间的所有月份](#给定起止日期返回中间的所有月份)\n- [输入两个字符串，输出他们中间的月份](#输入两个字符串输出他们中间的月份)\n- [简单封装一个异步 fecth，使用 async await 的方式来使用](#简单封装一个异步-fecth使用-async-await-的方式来使用)\n- [请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值](#请写一个函数输出出多级嵌套结构的-object-的所有-key-值)\n- [动手实现一个 repeat 方法](#动手实现一个-repeat-方法)\n- [versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数](#versions-是一个项目的版本号列表因多人维护不规则动手实现一个版本号处理函数)\n- [按要求实现一个 sum 函数](#按要求实现一个-sum-函数)\n- [实现一个函数将中文数字转成数字](#实现一个函数将中文数字转成数字)\n- [节流](#节流)\n- [已知函数 A，要求构造⼀个函数 B 继承 A](#已知函数-a要求构造个函数-b-继承-a)\n- [要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName](#要求不同式对-a-进改造实现-aname-发变化时即执-agetname)\n- [修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）](#修改以下代码使得最后代码能够输出数字-0-9最好能给多种答案)\n- [请给出识别 Email 的正则表达式](#请给出识别-email-的正则表达式)\n- [实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和](#实现函数接受任意二叉树求二叉树所有根到叶子路径组成的数字之和)\n- [Promise 链式调用如何实现](#promise-链式调用如何实现)\n- [如何把真实 dom 转变为虚拟 dom，代码实现一下](#如何把真实-dom-转变为虚拟-dom代码实现一下)\n- [实现以下代码](#实现以下代码)\n- [请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求](#请实现一个-cacherequest-方法保证发出多次同一个-ajax-请求时都能拿到数据而实际上只发出一次请求)\n- [实现一个函数柯里化](#实现一个函数柯里化)\n- [用 Promise 封装一个 ajax](#用-promise-封装一个-ajax)\n- [请实现$on,$emit](#请实现onemit)\n- [实现 bind 方法，不能使用 call、apply、bind](#实现-bind-方法不能使用-callapplybind)\n- [手写实现 sleep 函数](#手写实现-sleep-函数)\n- [用原生 js 实现自定义事件](#用原生-js-实现自定义事件)\n- [如何识别出字符串中的回车并进行换行？](#如何识别出字符串中的回车并进行换行？)\n- [输入一个日期 返回几秒前、几小时前、几天前、几月前](#输入一个日期-返回几秒前几小时前几天前几月前)\n- [将 153812.7 转化为 153,812.7](#将-1538127-转化为-1538127)\n- [实现一个 setter 方法](#实现一个-setter-方法)\n- [实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误](#实现一个功能发送请求-5s-时间后如果没有数据返回中断请求提示错误)\n- [reduce 函数的功能，如何实现的，动手实现一下](#reduce-函数的功能如何实现的动手实现一下)\n- [new 的实现原理，动手实现一个 new](#new-的实现原理动手实现一个-new)\n- [promise 如何实现 then 处理，动手实现 then](#promise-如何实现-then-处理动手实现-then)\n- [按照调用实例，实现下面的 Person 方法](#按照调用实例实现下面的-person-方法)\n- [按要求完成代码](#按要求完成代码)\n- [请修改代码能跳出死循环](#请修改代码能跳出死循环)\n- [请手写实现一个拖拽](#请手写实现一个拖拽)\n- [请手动实现一个浅拷贝](#请手动实现一个浅拷贝)\n- [介绍 instanceof 原理，并手动实现](#介绍-instanceof-原理并手动实现)\n- [请实现一个 JSON.stringfy](#请实现一个-jsonstringfy)\n- [请实现一个 JSON.parse](#请实现一个-jsonparse)\n- [用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。](#用-htmlcssjs-模拟实现一个下拉框使得下拉框在各个浏览器下的样式和行为完全一致说出你的设计方案并且重点说明功能设计时要考虑的因素)\n- [实现一个打点计时器](#实现一个打点计时器)\n- [在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标](#在一个-ul-里有-10-个-li实现点击对应的-li输出对应的下标)\n- [分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]](#分别对以下数组进行去重11122321123123456)\n- [编写一个 Person 类，并创建两个不同的 Person 对象](#编写一个-person-类并创建两个不同的-person-对象)\n- [说一下 let、const 的实现，动手实现一下](#说一下-letconst-的实现动手实现一下)\n- [写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组](#写一个函数打乱一个数组传入一个数组返回一个打乱的新数组)\n- [手写 EventEmitter 实现](#手写-eventemitter-实现)\n- [请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)](#请实现鼠标点击页面中的任意标签alert-该标签的名称注意兼容性)\n- [完成一个表达式，验证用户输入是否是电子邮箱](#完成一个表达式验证用户输入是否是电子邮箱)\n- [原生实现 ES5 的 Object.create()方法](#原生实现-es5-的-objectcreate方法)\n- [按要求完成题目](#按要求完成题目)\n- [填充代码实现 template 方法](#填充代码实现-template-方法)\n- [请用 JavaScript 代码实现事件代理](#请用-javascript-代码实现事件代理)\n- [实现格式化输出，比如输入 999999999，输出 999,999,999](#实现格式化输出比如输入-999999999输出-999999999)\n- [使用 JavaScript 实现 cookie 的设置、读取、删除](#使用-javascript-实现-cookie-的设置读取删除)\n- [请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"<a href=\"http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2\" rel=\"nofollow\">http://iauto360.cn/index.php?key0=0&amp;key1=1&amp;key2=2</a>\"](#请编写一个-javascript-函数-parsequerystring它的用途是把-url-参数解析为一个对象urlhttpiauto360cnindexphpkey00key11key22)\n- [给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符](#给-javascript-的-string-原生对象添加一个名为-trim-的原型方法用于截取字符串前后的空白字符)\n- [有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”](#有这样一个函数-a要求在不改变原有函数-a-功能以及调用方式的情况下使得每次调用该函数都能在控制台打印出helloworld)\n\n### Css 如何画出一个扇形，动手实现下\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/228)\n\n<br/>\n\n### 使用 Css 实现一个水波纹效果\n\n参考：[第二屏中的水波纹效果](https://mp.toutiao.com/auth/page/login/?redirect_url=JTJG#/?_k=1hjyly)\n\n公司：头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/151)\n\n<br/>\n\n### 动手实现一个左右固定100px，中间自适应的三列布局？(至少三种)\n\n公司：自如、头条\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/275)\n\n<br/>\n\n### 屏幕占满和未占满的情况下，使 footer 固定在底部，尽量多种方法\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/256)\n\n<br/>\n\n### Css 画一个三角形\n\n公司：会小二、高思教育、58\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/413)\n\n<br/>\n\n### Css 实现多列等高布局，要求元素实际占用的高度以多列中较高的为准\n\n公司：快手\n\n分类：Css、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/645)\n\n<br/>\n\n### 用 typescript 实现函数 caller，接收一个函数作为第一个参数，其返回参数类型由接收的函数参数决定\n\n公司：快手\n\n分类：其它、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/801)\n\n<br/>\n\n### 手动实现一个 Promisify 函数\n\n公司：高德\n\n分类：Node、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/306)\n\n<br/>\n\n### 介绍防抖节流原理、区别以及应用，并用JavaScript进行实现\n\n公司：滴滴、虎扑、挖财、58、头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/15)\n\n<br/>\n\n### 介绍下 promise 的特性、优缺点，内部是如何实现的，动手实现 Promise\n\n公司：滴滴、头条、喜马拉雅、兑吧、寺库、百分点、58、安居客\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/29)\n\n<br/>\n\n### 实现 Promise.all\n\n```js\nPromise.all = function (arr) {\n  // 实现代码\n};\n```\n\n公司：滴滴、头条、有赞、微医\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/30)\n\n<br/>\n\n### 请实现如下的函数\n\n```js\n/*\n\t可以批量请求数据，所有的 URL 地址在 urls 参数中，同时可以通过 max 参数控制请求的并发度，当所有请求结束之后，需要执行 callback 回调函数。发请求的函数可以直接使用 fetch 即可\n*/\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/185)\n\n<br/>\n\n### 设计一个函数，奇数次执行的时候打印 1，偶数次执行的时候打印 2\n\n公司：老虎\n\n分类：JavaScript\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/162)\n\n<br/>\n\n### 实现 Promise.then\n\n公司：高德、百分点\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/161)\n\n<br/>\n\n### 给定起止日期，返回中间的所有月份\n\n```js\n// 输入两个字符串 2018-08  2018-12\n// 输出他们中间的月份 [2018-9,2018-10, 2018-11]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/159)\n\n<br/>\n\n### 按要求实现代码\n\n```js\n// 给两个数组 [A1,A2,B1,B2,C1,C2,D1,D2] [A,B,C,D]\n// 输出 [A1,A2,A,B1,B2,B,C1,C2,C,D1,D2,D]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/158)\n\n<br/>\n\n### 简单封装一个异步 fecth，使用 async await 的方式来使用\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/155)\n\n<br/>\n\n### 请写一个函数，输出出多级嵌套结构的 Object 的所有 key 值\n\n```js\nvar obj = {\n  a: \"12\",\n  b: \"23\",\n  first: {\n    c: \"34\",\n    d: \"45\",\n    second: { 3: \"56\", f: \"67\", three: { g: \"78\", h: \"89\", i: \"90\" } },\n  },\n};\n// => [a,b,c,d,e,f,g,h,i]\n```\n\n公司：顺丰\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/152)\n\n<br/>\n\n### 动手实现一个 repeat 方法\n\n```js\nfunction repeat(func, times, wait) {\n  // TODO\n}\nconst repeatFunc = repeat(alert, 4, 3000);\n// 调用这个 repeatFunc (\"hellworld\")，会alert4次 helloworld, 每次间隔3秒\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/148)\n\n<br/>\n\n### versions 是一个项目的版本号列表，因多人维护，不规则，动手实现一个版本号处理函数\n\n```js\nvar versions = [\"1.45.0\", \"1.5\", \"6\", \"3.3.3.3.3.3.3\"];\n// 要求从小到大排序，注意'1.45'比'1.5'大\nfunction sortVersion(versions) {\n  // TODO\n}\n// => ['1.5','1.45.0','3.3.3.3.3.3','6']\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/146)\n\n<br/>\n\n### 按要求实现一个 sum 函数\n\n```js\nconst a = sum(); // => a === 0\nconst b = sum(); // => b === 2\nconst c = sum(4)(5); // c === 9\nconst k = sum(n1)...(nk) // k === n1 + n2 + ... + nk\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/141)\n\n<br/>\n\n### 实现一个函数将中文数字转成数字\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/343)\n\n<br/>\n\n### 节流\n\n公司：微软\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/342)\n\n<br/>\n\n### 已知函数 A，要求构造⼀个函数 B 继承 A\n\n```js\nfunction A(name) {\n  this.name = name;\n}\nA.prototype.getName = function () {\n  console.log(this.name);\n};\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/333)\n\n<br/>\n\n### 要求⽤不同⽅式对 A 进⾏改造实现 A.name 发⽣变化时⽴即执⾏ A.getName\n\n```js\n/*\n\t已知对象A = {name: 'sfd', getName: function(){console.log(this.name)}},\n\t现要求⽤不同⽅式对A进⾏改造实现A.name发⽣变化时⽴即执⾏A.getName\n*/\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/329)\n\n<br/>\n\n### 修改以下代码，使得最后⼀⾏代码能够输出数字 0-9（最好能给多种答案）\n\n```js\nvar arrys = [];\nfor (var i = 0; i < 10; i++) {\n  arrys.push(function () {\n    return i;\n  });\n}\narrys.forEach(function (fn) {\n  console.log(fn());\n}); //本⾏不能修改\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/328)\n\n<br/>\n\n### 请给出识别 Email 的正则表达式\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/325)\n\n<br/>\n\n### 实现函数接受任意二叉树，求二叉树所有根到叶子路径组成的数字之和\n\n```js\nclass TreeNode{\n  value:number\n  left?:TreeNode\n  right?:TreeNode\n}\nfunction getPathSum(root){\n  // your code\n}\n// 例子，一层二叉树如下定义，路径包括1 —> 2 ,1 -> 3\nconst node = new TreeNode();\nnode.value = 1;\nnode.left = new TreeNode();\nnode.left.value = 2;\nnode.right = new TreeNode();\nnode.right.value = 3;\ngetPathSum(node); // return 7 = (1+2) + (1+3)\n```\n\n公司：头条\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/323)\n\n<br/>\n\n### Promise 链式调用如何实现\n\n公司：滴滴\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/319)\n\n<br/>\n\n### 如何把真实 dom 转变为虚拟 dom，代码实现一下\n\n公司：高德\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/310)\n\n<br/>\n\n### 实现以下代码\n\n```js\nfunction add() {\n  // your code\n}\nfunction one() {\n  // your code\n}\nfunction two() {\n  // your code\n}\nconsole.log(add(one(two()))); //3\nconsole.log(add(two(one()))); //3\n```\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/294)\n\n<br/>\n\n### 请实现一个 cacheRequest 方法，保证发出多次同一个 ajax 请求时都能拿到数据，而实际上只发出一次请求\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/293)\n\n<br/>\n\n### 实现一个函数柯里化\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/292)\n\n<br/>\n\n### 用 Promise 封装一个 ajax\n\n公司：脉脉\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/276)\n\n<br/>\n\n### 请实现`$on,$emit`\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/269)\n\n<br/>\n\n### 实现 bind 方法，不能使用 call、apply、bind\n\n公司：自如、腾讯应用宝、快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/268)\n\n<br/>\n\n### 手写实现 sleep 函数\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/267)\n\n<br/>\n\n### 用原生 js 实现自定义事件\n\n公司：自如\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/258)\n\n<br/>\n\n### 如何识别出字符串中的回车并进行换行？\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/257)\n\n<br/>\n\n### 输入一个日期 返回几秒前、几小时前、几天前、几月前\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/255)\n\n<br/>\n\n### 将 153812.7 转化为 153,812.7\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/244)\n\n<br/>\n\n### 实现一个 setter 方法\n\n```js\nlet setter = function (conten, key, value) {\n  // your code\n};\nlet n = {\n  a: {\n    b: {\n      c: { d: 1 },\n      bx: { y: 1 },\n    },\n    ax: { y: 1 },\n  },\n};\n// 修改值\nsetter(n, \"a.b.c.d\", 3);\nconsole.log(n.a.b.c.d); //3\nsetter(n, \"a.b.bx\", 1);\nconsole.log(n.b.bx); //1\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/386)\n\n<br/>\n\n### 实现一个功能，发送请求 5s 时间后，如果没有数据返回，中断请求,提示错误\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/375)\n\n<br/>\n\n### reduce 函数的功能，如何实现的，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/587)\n\n<br/>\n\n### new 的实现原理，动手实现一个 new\n\n公司：兑吧\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/428)\n\n<br/>\n\n### promise 如何实现 then 处理，动手实现 then\n\n公司：宝宝树\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/775)\n\n<br/>\n\n### 按照调用实例，实现下面的 Person 方法\n\n```js\nPerson(\"Li\");\n// 输出： Hi! This is Li!\n\nPerson(\"Dan\").sleep(10).eat(\"dinner\");\n// 输出：\n// Hi! This is Dan!\n// 等待10秒..\n// Wake up after 10\n// Eat dinner~\n\nPerson(\"Jerry\").eat(\"dinner\").eat(\"supper\");\n// 输出：\n// Hi This is Jerry!\n// Eat dinner~\n// Eat supper~\n\nPerson(\"Smith\").sleepFirst(5).eat(\"supper\");\n// 输出：\n// 等待5秒\n// Wake up after 5\n// Hi This is Smith!\n// Eat supper\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/738)\n\n<br/>\n\n### 按要求完成代码\n\n```js\nconst timeout = (ms) =>\n  new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve();\n    }, ms);\n  });\nconst ajax1 = () =>\n  timeout(2000).then(() => {\n    console.log(\"1\");\n    return 1;\n  });\nconst ajax2 = () =>\n  timeout(1000).then(() => {\n    console.log(\"2\");\n    return 2;\n  });\nconst ajax3 = () =>\n  timeout(2000).then(() => {\n    console.log(\"3\");\n    return 3;\n  });\nconst mergePromise = (ajaxArray) => {\n  // 1,2,3 done [1,2,3] 此处写代码 请写出ES6、ES3 2中解法\n};\nmergePromise([ajax1, ajax2, ajax3]).then((data) => {\n  console.log(\"done\");\n  console.log(data); // data 为[1,2,3]\n});\n// 执行结果为：1 2 3 done [1,2,3]\n```\n\n公司：阿里\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/728)\n\n<br/>\n\n### 请修改代码能跳出死循环\n\n```js\nwhile (1) {\n  switch (\"yideng\") {\n    case \"yideng\":\n    //禁止直接写一句break\n  }\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/725)\n\n<br/>\n\n### 修改代码不造成死循环\n\n```js\nwhile(1){\n  console.log(Math.random());\n}\n```\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/911)\n\n<br/>\n\n\n### 请手写实现一个拖拽\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/711)\n\n<br/>\n\n### 请手动实现一个浅拷贝\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/710)\n\n<br/>\n\n### 介绍 instanceof 原理，并手动实现\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/709)\n\n<br/>\n\n### 请实现一个 JSON.stringfy\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/708)\n\n<br/>\n\n### 请实现一个 JSON.parse\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/707)\n\n<br/>\n\n### 用 html、css、js 模拟实现一个下拉框，使得下拉框在各个浏览器下的样式和行为完全一致，说出你的设计方案，并且重点说明功能设计时要考虑的因素。\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/687)\n\n<br/>\n\n### 实现一个打点计时器\n\n```js\n/* \n  1.从start至end,每隔100毫秒console.log一个数字，每次数字增幅为1\n  2.返回的对象中需要包含一个cancel方法，用于停止定时操作\n  3.第一个数字需要立即输出\n*/\n```\n\n公司：会小二\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/685)\n\n<br/>\n\n### 在一个 ul 里有 10 个 li,实现点击对应的 li,输出对应的下标\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/673)\n\n<br/>\n\n### 分别对以下数组进行去重，1:[1,'1',2,'2',3]，2:[1,[1,2,3['1','2','3'],4],5,6]\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/672)\n\n<br/>\n\n### 编写一个 Person 类，并创建两个不同的 Person 对象\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/670)\n\n<br/>\n\n### 说一下 let、const 的实现，动手实现一下\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/655)\n\n<br/>\n\n### 写一个函数打乱一个数组，传入一个数组，返回一个打乱的新数组\n\n公司：快手\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/643)\n\n<br/>\n\n### 手写 EventEmitter 实现\n\n公司：头条、亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/624)\n\n<br/>\n\n### 请实现鼠标点击页面中的任意标签，alert 该标签的名称(注意兼容性)\n\n公司：爱范儿、道一云\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/854)\n\n<br/>\n\n### 完成一个表达式，验证用户输入是否是电子邮箱\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/853)\n\n<br/>\n\n### 原生实现 ES5 的 Object.create()方法\n\n公司：爱范儿\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/852)\n\n<br/>\n\n### 按要求完成题目\n\n```js\n/* \n  a)在不使用vue、react的前提下写代码解决一下问题\n    一个List页面上，含有1000个条目的待办列表，现其中100项在同一时间达到了过期时间，需要在对应项的text-node里添加“已过期”文字。需要尽可能减少dom重绘次数以提升性能。\n  b)尝试使用vue或react解决上述问题\n*/\n```\n\n公司：爱范儿\n\n分类：JavaScript、Vue、React、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/848)\n\n<br/>\n\n### 填充代码实现 template 方法\n\n```js\nvar str = \"您好，<%=name%>。欢迎来到<%=location%>\";\nfunction template(str) {\n  // your code\n}\nvar compiled = template(srt);\n// compiled的输出值为：“您好，张三。欢迎来到网易游戏”\ncompiled({ name: \"张三\", location: \"网易游戏\" });\n```\n\n公司：网易\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/844)\n\n<br/>\n\n### 请用 JavaScript 代码实现事件代理\n\n公司：玄武科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/832)\n\n<br/>\n\n### 实现格式化输出，比如输入 999999999，输出 999,999,999\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/831)\n\n<br/>\n\n### 使用 JavaScript 实现 cookie 的设置、读取、删除\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/830)\n\n<br/>\n\n### 请编写一个 JavaScript 函数 parseQueryString,它的用途是把 URL 参数解析为一个对象，url=\"http://iauto360.cn/index.php?key0=0&key1=1&key2=2\"\n\n公司：亚美科技\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/829)\n\n<br/>\n\n### 给 JavaScript 的 String 原生对象添加一个名为 trim 的原型方法，用于截取字符串前后的空白字符\n\n公司：高思教育\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/822)\n\n<br/>\n\n### 有这样一个函数 A,要求在不改变原有函数 A 功能以及调用方式的情况下，使得每次调用该函数都能在控制台打印出“HelloWorld”\n\n```js\nfunction A() {\n  console.log(\"调用了函数A\");\n}\n```\n\n公司：新东方\n\n分类：JavaScript、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/800)\n\n<br/>\n\n"
  },
  {
    "path": "summarry/react.md",
    "content": "# React题目汇总\n\n- [如何配置 React-Router 实现路由切换](#如何配置-react-router-实现路由切换)\n- [介绍 Redux 数据流的流程](#介绍-redux-数据流的流程)\n- [Redux 如何实现多个组件之间的通信，多个组件使用相同状态如何进行管理](#redux-如何实现多个组件之间的通信多个组件使用相同状态如何进行管理)\n- [React 路由的动态加载模块，实现按需加载](#React 路由的动态加载模块，实现按需加载)\n- [多个组件之间如何拆分各自的 state，每块小的组件有自己的状态，它们之间还有一些公共的状态需要维护，这如何思考](#多个组件之间如何拆分各自的-state每块小的组件有自己的状态它们之间还有一些公共的状态需要维护这如何思考)\n- [使用过的 Redux 中间件](#使用过的-redux-中间件)\n- [redux 的设计思想](#redux-的设计思想)\n- [React 项目中有哪些细节可以优化？实际开发中都做过哪些性能优化](#react-项目中有哪些细节可以优化实际开发中都做过哪些性能优化)\n- [react 最新版本解决了什么问题 加了哪些东西](#react-最新版本解决了什么问题-加了哪些东西)\n- [React 事件绑定原理](#react-事件绑定原理)\n- [React 组件通信方式](#react-组件通信方式)\n- [redux-saga 和 mobx 的比较](#redux-saga-和-mobx-的比较)\n- [说一下 react-fiber](#说一下-react-fiber)\n- [react 实现一个全局的 dialog](#react-实现一个全局的-dialog)\n- [React 数据持久化有什么实践吗？](#react-数据持久化有什么实践吗)\n- [使用过 mobx mobx 和 redux 有什么区别？](#使用过-mobox-吗mobox-和-redux-有什么区别)\n- [React 高阶组件 renderprops hooks 有什么区别，为什么要不断迭代](#react-高阶组件-renderprops-hooks-有什么区别为什么要不断迭代)\n- [说一下 React setState 原理](#说一下-react-setstate-原理)\n- [说一下 React diff 算法](#说一下-react-diff-算法)\n- [说一下 React 生命周期，以及都有哪些改变，为什么去掉了那几个旧的生命周期](#说一下-react-生命周期以及都有哪些改变为什么去掉了那几个旧的生命周期)\n- [React key 是干嘛用的 为什么要加？key 主要是解决哪一类问题的](#react-key-是干嘛用的-为什么要加key-主要是解决哪一类问题的)\n- [Redux 中异步的请求怎么处理](#redux-中异步的请求怎么处理)\n- [Redux 和 Vuex 有什么区别，说下一它们的共同思想](#redux-和-vuex-有什么区别说下一它们的共同思想)\n- [为什么 useState 要使用数组而不是对象](#为什么-usestate-要使用数组而不是对象)\n- [说一下单向数据流有什么好处](#说一下单向数据流有什么好处)\n- [说一下对 React 和 Vue 的理解，它们的异同](#说一下对-react-和-vue-的理解它们的异同)\n- [说一下 React.Component 和 Ract.PureComponent 的区别](#说一下-reactcomponent-和-ractpurecomponent-的区别)\n- [说一下对 React Hook 的理解，它的实现原理，和生命周期有哪些区别？](#说一下对-react-hook-的理解它的实现原理和生命周期有哪些区别)\n- [说一下 React 有状态组件与无状态组件区别，以及为什么要用，它的优缺点](#说一下-react-有状态组件与无状态组件区别以及为什么要用它的优缺点)\n- [说一下对 React context 的理解](#说一下对-react-context-的理解)\n- [说一下对 React-redux 的理解以及它的原理，主要解决什么问题](#说一下对-react-redux-的理解以及它的原理主要解决什么问题)\n- [说一下 Redux 的原理，介绍下整体的一个工作流程](#说一下-redux-的原理介绍下整体的一个工作流程)\n- [React 如何避免 renderd 的触发](#react-如何避免-renderd-的触发)\n- [说一下对 vnode 的理解，vnode 的引入与直接操作原生 dom 相比，哪一个相率更高，为什么](#说一下对-vnode-的理解vnode-的引入与直接操作原生-dom-相比哪一个相率更高为什么)\n- [React15/16.x 的区别](#react1516x-的区别)\n- [redux 请求中间件如何处理并发](#redux-请求中间件如何处理并发)\n- [React 组件中怎么做事件代理？它的原理是什么？](#react-组件中怎么做事件代理它的原理是什么)\n- [React 怎么做数据的检查和变化](#react-怎么做数据的检查和变化)\n- [react-router 里的 Link 标签和 a 标签有什么区别](#react-router-里的-link-标签和-a-标签有什么区别)\n- [React 中 Dom 结构发生变化后内部经历了哪些变化](#react-中-dom-结构发生变化后内部经历了哪些变化)\n- [React 挂载的时候有 3 个组件，textComponent、composeComponent、domComponent，区别和关系，Dom 结构发生变化时怎么区分 data 的变化，怎么更新，更新怎么调度，如果更新的时候还有其他任务存在怎么处理](#react-挂载的时候有-3-个组件textcomponentcomposecomponentdomcomponent区别和关系dom-结构发生变化时怎么区分-data-的变化怎么更新更新怎么调度如果更新的时候还有其他任务存在怎么处理)\n- [React 子父组件之间如何传值](#react-子父组件之间如何传值)\n- [Redux 中间件是什么东西？接受几个参数？柯里化函数两端的参数具体是什么东西？](#redux-中间件是什么东西接受几个参数柯里化函数两端的参数具体是什么东西)\n- [Redux 中间件· 中间件是怎么拿到 store 和 action？然后怎么处理？](#redux-中间件-中间件是怎么拿到-store-和-action然后怎么处理)\n- [state 是怎么注入到组件的，从 reducer 到组件经历了什么样的过程](#state-是怎么注入到组件的从-reducer-到组件经历了什么样的过程)\n- [接入 Redux 过程？绑定 connect 的过程？connect 的原理](#接入-redux-过程绑定-connect-的过程connect-的原理)\n- [RN 如何调用原生的一些功能、如何和原生进行通信](#rn-如何调用原生的一些功能如何和原生进行通信)\n- [react 异步渲染的概念,介绍 Time Slicing 和 Suspense](#react-异步渲染的概念介绍-time-slicing-和-suspense)\n- [16.X 中 props 改变后在哪个生命周期中处理](#16x-中-props-改变后在哪个生命周期中处理)\n- [如何做 RN 在安卓和 IOS 端的适配](#如何做-rn-在安卓和-ios-端的适配)\n- [RN 为什么能在原生中绘制成原生组件](#rn-为什么能在原生中绘制成原生组件)\n- [介绍下 React 高阶组件，和普通组件有什么区别，适用什么场景](#介绍下-react-高阶组件和普通组件有什么区别适用什么场景)\n- [native 提供了什么能力给 RN](#native-提供了什么能力给-rn)\n- [shouldComponentUpdate 是为了解决什么问题](#shouldcomponentupdate-是为了解决什么问题)\n- [如何解决 props 层级过深的问题](#如何解决-props-层级过深的问题)\n- [React 遇到性能问题一般在哪个生命周期里解决](#react-遇到性能问题一般在哪个生命周期里解决)\n- [React/Redux 中哪些功能用到了哪些设计模式](#reactredux-中哪些功能用到了哪些设计模式)\n- [一个对象数组，每个子对象包含一个 id 和 name，React 如何渲染出全部的 name？在哪个生命周期里写？其中有几个 name 不存在，通过异步接口获取，如何做？渲染的时候 key 给什么值？可以使用 index 吗？用 id 好还是 index 好？](#一个对象数组每个子对象包含一个-id-和-namereact-如何渲染出全部的-name在哪个生命周期里写其中有几个-name-不存在通过异步接口获取如何做渲染的时候-key-给什么值可以使用-index-吗用-id-好还是-index-好)\n- [componentWillReceiveProps 的触发条件是什么](#componentwillreceiveprops-的触发条件是什么)\n- [Redux 怎么实现属性传递，介绍下原理](#redux-怎么实现属性传递介绍下原理)\n- [Redux 状态管理器和变量挂载到 window 中有什么区别](#redux-状态管理器和变量挂载到-window-中有什么区别)\n- [React 中 setState 后发生了什么？setState 为什么默认是异步？setState 什么时候是同步？](#react-中-setstate-后发生了什么setstate-为什么默认是异步setstate-什么时候是同步)\n- [为什么 3 大框架出现以后就出现很多 native（RN）框架（虚拟 DOM）](#为什么-3-大框架出现以后就出现很多-nativern框架虚拟-dom)\n- [RN 有没有做热加载？RN 遇到的兼容性问题？](#rn-有没有做热加载rn-遇到的兼容性问题)\n- [RN 如何实现一个原生的组件？](#rn-如何实现一个原生的组件)\n- [RN 混原生和原生混 RN 有什么不同？](#rn-混原生和原生混-rn-有什么不同)\n- [RN 的原理，为什么可以同时在安卓和 IOS 端运行](#rn-的原理为什么可以同时在安卓和-ios-端运行)\n- [redux 和全局管理有什么区别](#rudex-和全局管理有什么区别)\n- [介绍 React 设计思路，它的理念是什么？](#介绍-react-设计思路它的理念是什么)\n- [props 和 state 的区别](#props-和-state-的区别)\n- [哪些方法会触发 react 重新渲染？重新渲染 render 会做些什么？](#哪些方法会触发-react-重新渲染重新渲染-render-会做些什么)\n- [state 和 props 触发更新的生命周期分别有什么区别？](#state-和-props-触发更新的生命周期分别有什么区别)\n- [React setState 是同步还是异步？](#react-setstate-是同步还是异步)\n- [对无状态组件的理解](#对无状态组件的理解)\n- [介绍箭头函数的 this](#介绍箭头函数的-this)\n- [对 React 的看法，它的优缺点，使用过程中遇到的问题，如何解决的](#对-react-的看法它的优缺点使用过程中遇到的问题如何解决的)\n- [React兄弟组件的通信方式？(需回答两种以上)](#react兄弟组件的通信方式需回答两种以上)\n- [Fiber算法原理，相比之前的stack算法哪些方面做了优化？](#fiber算法原理相比之前的stack算法哪些方面做了优化)\n- [如何实现双向绑定，并抽象成公共组件](#如何实现双向绑定并抽象成公共组件)\n\n### 如何配置 React-Router 实现路由切换\n\n公司：阿里、滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/553)\n\n<br/>\n\n### 介绍 Redux 数据流的流程\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/551)\n\n<br/>\n\n### Redux 如何实现多个组件之间的通信，多个组件使用相同状态如何进行管理\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/550)\n\n<br/>\n\n### React 路由的动态加载模块，实现按需加载\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/549)\n\n<br/>\n\n### 多个组件之间如何拆分各自的 state，每块小的组件有自己的状态，它们之间还有一些公共的状态需要维护，这如何思考\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/548)\n\n<br/>\n\n### 使用过的 Redux 中间件\n\n公司：阿里\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/547)\n\n<br/>\n\n### redux 的设计思想\n\n公司：头条\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/546)\n\n<br/>\n\n### React 项目中有哪些细节可以优化？实际开发中都做过哪些性能优化\n\n公司：滴滴、掌门一对一、网易、有赞、沪江、喜马拉雅、酷家乐、快手\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/12)\n\n<br/>\n\n### react 最新版本解决了什么问题 加了哪些东西\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/13)\n\n<br/>\n\n### React 事件绑定原理\n\n公司：滴滴、沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/23)\n\n<br/>\n\n### React 组件通信方式\n\n公司：滴滴、掌门一对一、喜马拉雅、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/31)\n\n<br/>\n\n### redux-saga 和 mobx 的比较\n\n公司：掌门一对一\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/32)\n\n<br/>\n\n### 说一下 react-fiber\n\n公司：头条、滴滴、菜鸟网络、挖财、喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/33)\n\n<br/>\n\n### react 实现一个全局的 dialog\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/241)\n\n<br/>\n\n### React 数据持久化有什么实践吗？\n\n公司：洋葱学院\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/238)\n\n<br/>\n\n### 使用过 mobx mobx 和 redux 有什么区别？\n\n公司：洋葱学院\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/237)\n\n<br/>\n\n### React 高阶组件 renderprops hooks 有什么区别，为什么要不断迭代\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/224)\n\n<br/>\n\n### 说一下 React setState 原理\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/223)\n\n<br/>\n\n### 说一下 React diff 算法\n\n公司：脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/222)\n\n<br/>\n\n### 说一下 React 生命周期，以及都有哪些改变，为什么去掉了那几个旧的生命周期\n\n公司：完美世界、高德、脉脉、有赞、挖财、沪江、携程、喜马拉雅、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/221)\n\n<br/>\n\n### React key 是干嘛用的 为什么要加？key 主要是解决哪一类问题的\n\n公司：滴滴、挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/220)\n\n<br/>\n\n### Redux 中异步的请求怎么处理\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/219)\n\n<br/>\n\n### Redux 和 Vuex 有什么区别，说下一它们的共同思想\n\n公司：快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/206)\n\n<br/>\n\n### 为什么 useState 要使用数组而不是对象\n\n公司：伴鱼\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/187)\n\n<br/>\n\n### 说一下单向数据流有什么好处\n\n公司：完美世界、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/358)\n\n<br/>\n\n### 说一下对 React 和 Vue 的理解，它们的异同\n\n公司：网易、脉脉、快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/347)\n\n<br/>\n\n### 说一下 React.Component 和 Ract.PureComponent 的区别\n\n公司：高德、有赞、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/312)\n\n<br/>\n\n### 说一下对 React Hook 的理解，它的实现原理，和生命周期有哪些区别？\n\n公司：高德\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/311)\n\n<br/>\n\n### 说一下 React 有状态组件与无状态组件区别，以及为什么要用，它的优缺点\n\n公司：高德\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/305)\n\n<br/>\n\n### 说一下对 React context 的理解\n\n公司：脉脉、酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/285)\n\n<br/>\n\n### 说一下对 React-redux 的理解以及它的原理，主要解决什么问题\n\n公司：阿里、脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/284)\n\n<br/>\n\n### 说一下 Redux 的原理，介绍下整体的一个工作流程\n\n公司：脉脉、兑吧、寺库、蘑菇街、百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/283)\n\n<br/>\n\n### React 如何避免 renderd 的触发\n\n公司：脉脉\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/282)\n\n<br/>\n\n### 说一下对 vnode 的理解，vnode 的引入与直接操作原生 dom 相比，哪一个相率更高，为什么\n\n公司：脉脉、菜鸟网络、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/280)\n\n<br/>\n\n### React15/16.x 的区别\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/400)\n\n<br/>\n\n### redux 请求中间件如何处理并发\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/528)\n\n<br/>\n\n### React 组件中怎么做事件代理？它的原理是什么？\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/525)\n\n<br/>\n\n### React 怎么做数据的检查和变化\n\n公司：网易\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/521)\n\n<br/>\n\n### react-router 里的 Link 标签和 a 标签有什么区别\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/520)\n\n<br/>\n\n### React 中 Dom 结构发生变化后内部经历了哪些变化\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/511)\n\n<br/>\n\n### React 挂载的时候有 3 个组件，textComponent、composeComponent、domComponent，区别和关系，Dom 结构发生变化时怎么区分 data 的变化，怎么更新，更新怎么调度，如果更新的时候还有其他任务存在怎么处理\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/510)\n\n<br/>\n\n### React 子父组件之间如何传值\n\n公司：饿了么\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/509)\n\n<br/>\n\n### Redux 中间件是什么东西？接受几个参数？柯里化函数两端的参数具体是什么东西？\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/508)\n\n<br/>\n\n### Redux 中间件· 中间件是怎么拿到 store 和 action？然后怎么处理？\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/507)\n\n<br/>\n\n### state 是怎么注入到组件的，从 reducer 到组件经历了什么样的过程\n\n公司：滴滴\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/506)\n\n<br/>\n\n### 接入 Redux 过程？绑定 connect 的过程？connect 的原理\n\n公司：头条、宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/497)\n\n<br/>\n\n### RN 如何调用原生的一些功能、如何和原生进行通信\n\n公司：寺库、宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/486)\n\n<br/>\n\n### react 异步渲染的概念,介绍 Time Slicing 和 Suspense\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/485)\n\n<br/>\n\n### 16.X 中 props 改变后在哪个生命周期中处理\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/484)\n\n<br/>\n\n### 如何做 RN 在安卓和 IOS 端的适配\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/481)\n\n<br/>\n\n### RN 为什么能在原生中绘制成原生组件\n\n公司：有赞\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/480)\n\n<br/>\n\n### 介绍下 React 高阶组件，和普通组件有什么区别，适用什么场景\n\n公司：有赞、饿了么、喜马拉雅、乘法云\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/476)\n\n<br/>\n\n### native 提供了什么能力给 RN\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/470)\n\n<br/>\n\n### shouldComponentUpdate 是为了解决什么问题\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/468)\n\n<br/>\n\n### 如何解决 props 层级过深的问题\n\n公司：挖财\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/467)\n\n<br/>\n\n### React 遇到性能问题一般在哪个生命周期里解决\n\n公司：沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/459)\n\n<br/>\n\n### React/Redux 中哪些功能用到了哪些设计模式\n\n公司：沪江\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/457)\n\n<br/>\n\n### 一个对象数组，每个子对象包含一个 id 和 name，React 如何渲染出全部的 name？在哪个生命周期里写？其中有几个 name 不存在，通过异步接口获取，如何做？渲染的时候 key 给什么值？可以使用 index 吗？用 id 好还是 index 好？\n\n公司：饿了么\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/452)\n\n<br/>\n\n### componentWillReceiveProps 的触发条件是什么\n\n公司：喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/441)\n\n<br/>\n\n### Redux 怎么实现属性传递，介绍下原理\n\n公司：喜马拉雅\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/440)\n\n<br/>\n\n### Redux 状态管理器和变量挂载到 window 中有什么区别\n\n公司：兑吧、蘑菇街\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/425)\n\n<br/>\n\n### React 中 setState 后发生了什么？setState 为什么默认是异步？setState 什么时候是同步？\n\n公司：微医\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/601)\n\n<br/>\n\n### 为什么 3 大框架出现以后就出现很多 native（RN）框架（虚拟 DOM）\n\n公司：微医\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/600)\n\n<br/>\n\n### RN 有没有做热加载？RN 遇到的兼容性问题？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/596)\n\n<br/>\n\n### RN 如何实现一个原生的组件？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/595)\n\n<br/>\n\n### RN 混原生和原生混 RN 有什么不同？\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/594)\n\n<br/>\n\n### RN 的原理，为什么可以同时在安卓和 IOS 端运行\n\n公司：寺库\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/782)\n\n<br/>\n\n### redux 和全局管理有什么区别\n\n公司：宝宝树\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/777)\n\n<br/>\n\n### 介绍 React 设计思路，它的理念是什么？\n\n公司：蘑菇街、海风教育\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/764)\n\n<br/>\n\n### props 和 state 的区别\n\n公司：酷家乐\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/756)\n\n<br/>\n\n### 哪些方法会触发 react 重新渲染？重新渲染 render 会做些什么？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/751)\n\n<br/>\n\n### state 和 props 触发更新的生命周期分别有什么区别？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/750)\n\n<br/>\n\n### React setState 是同步还是异步？\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/749)\n\n<br/>\n\n### 对无状态组件的理解\n\n公司：百分点\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/748)\n\n<br/>\n\n### 对 React 的看法，它的优缺点，使用过程中遇到的问题，如何解决的\n\n公司：海风教育\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/744)\n\n<br/>\n\n### React兄弟组件的通信方式？(需回答两种以上)\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/786)\n\n<br/>\n\n### Fiber算法原理，相比之前的stack算法哪些方面做了优化？\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/785)\n\n<br/>\n\n### 如何实现双向绑定，并抽象成公共组件\n\n分类：React\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/784)\n\n<br/>\n\n"
  },
  {
    "path": "summarry/vue.md",
    "content": "# Vue题目汇总\n\n- [按要求完成题目](#按要求完成题目)\n- [Redux 和 Vuex 有什么区别，说下一它们的共同思想](#redux-和-vuex-有什么区别说下一它们的共同思想)\n- [说一下对 React 和 Vue 的理解，它们的异同](#说一下对-react-和-vue-的理解它们的异同)\n- [对虚拟 DOM 的理解？虚拟 DOM 主要做了什么？虚拟 DOM 本身是什么？](#对虚拟-dom-的理解虚拟-dom-主要做了什么虚拟-dom-本身是什么)\n- [介绍单页应用和多页应用？](#介绍单页应用和多页应用)\n- [说一下 Vue3 与 Vue2 的对比](#说一下-vue3-与-vue2-的对比)\n- [vue 对数组的方法做了重写的操作，如何实现对 vue2 中对数组操作的 push()方法](#vue-对数组的方法做了重写的操作如何实现对-vue2-中对数组操作的-push方法)\n- [简述 Vue 的基本原理](#简述-vue-的基本原理)\n- [简述 Vue 的生命周期以及每个阶段做的事](#简述-vue-的生命周期以及每个阶段做的事)\n- [说一下 Vue 组件的通信方式都有哪些？(父子组件，兄弟组件，多级嵌套组件等等)](#说一下-vue-组件的通信方式都有哪些父子组件兄弟组件多级嵌套组件等等)\n- [说一下 Vuex 的原理以及自己的理解](#说一下-vuex-的原理以及自己的理解)\n- [Vue v-model 是如何实现的，语法糖实际是什么](#vue-v-model-是如何实现的语法糖实际是什么)\n- [说一下 Vue dom diff 算法](#说一下-vue-dom-diff-算法)\n- [说一下 Vue 的$nextTick 原理](#说一下-vue-的nexttick-原理)\n- [说一下 vue-router 的原理](#说一下-vue-router-的原理)\n- [Vue 是如何收集依赖的](#vue-是如何收集依赖的)\n- [说一下 Vue 单页与多页的区别](#说一下-vue-单页与多页的区别)\n- [说一下 Vue 路由实现原理](#说一下-vue-路由实现原理)\n- [Vue3.0 为什么要用 proxy？是怎么用 proxy 实现数据监听的?](#vue30-为什么要用-proxy是怎么用-proxy-实现数据监听的)\n- [说一下对 vue3.0 的了解，vue3.0 为什么要用代理](#说一下对-vue30-的了解vue30-为什么要用代理)\n- [子组件可以直接改变父组件的数据么，说明原因](#子组件可以直接改变父组件的数据么说明原因)\n- [Vue 中一次性 200 条弹幕怎么处理](#vue-中一次性-200-条弹幕怎么处理)\n- [vue hooks 有哪些](#vue-hooks-有哪些)\n- [介绍 Vue template 到 render 的过程](#介绍-vue-template-到-render-的过程)\n- [怎么定义 vue-router 的动态路由？怎么获取传过来的动态参数？](#怎么定义-vue-router-的动态路由怎么获取传过来的动态参数)\n- [下面关于 Vue 说法正确的是？(单选题)](#下面关于-vue-说法正确的是单选题)\n- [为什么要用 Vuex 或者 Redux，不要说为了保存状态](#为什么要用-vuex-或者-redux不要说为了保存状态)\n- [为什么 Vue data 必须是函数](#为什么-vue-data-必须是函数)\n- [Vue data 中某一个属性的值发生改变后，视图会立即同步执行重新渲染吗？](#vue-data-中某一个属性的值发生改变后视图会立即同步执行重新渲染吗)\n- [简述 mixin、extends 的覆盖逻辑](#简述-mixinextends-的覆盖逻辑)\n- [Vue 子组件和父组件执行顺序](#vue-子组件和父组件执行顺序)\n- [Vuex 和 localStorage 的区别](#vuex-和-localstorage-的区别)\n- [Vue 双向绑定原理](#vue-双向绑定原理)\n- [说一下路由钩子在 Vue 生命周期的体现？](#说一下路由钩子在-vue-生命周期的体现)\n- [计算属性和普通属性的区别](#计算属性和普通属性的区别)\n- [描述下自定义指令(你是怎么用自定义指令的)](#描述下自定义指令你是怎么用自定义指令的)\n- [说一下 Vue 中所有带$的方法](#说一下-vue-中所有带的方法)\n- [Vue-router 除了 router-link 怎么实现跳转](#vue-router-除了-router-link-怎么实现跳转)\n- [说一下 Vue 的 keep-alive 是如何实现的，具体缓存的是什么？](#说一下-vue-的-keep-alive-是如何实现的具体缓存的是什么)\n\n### 按要求完成题目\n\n```js\n/* \n  a)在不使用vue、react的前提下写代码解决一下问题\n    一个List页面上，含有1000个条目的待办列表，现其中100项在同一时间达到了过期时间，需要在对应项的text-node里添加“已过期”文字。需要尽可能减少dom重绘次数以提升性能。\n  b)尝试使用vue或react解决上述问题\n*/\n```\n\n公司：爱范儿\n\n分类：JavaScript、Vue、React、编程题\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/848)\n\n<br/>\n\n### Redux 和 Vuex 有什么区别，说下一它们的共同思想\n\n公司：快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/206)\n\n<br/>\n\n### 说一下对 React 和 Vue 的理解，它们的异同\n\n公司：网易、脉脉、快手\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/347)\n\n<br/>\n\n### 对虚拟 DOM 的理解？虚拟 DOM 主要做了什么？虚拟 DOM 本身是什么？\n\n公司：有赞、微医、58\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/479)\n\n<br/>\n\n### 介绍单页应用和多页应用？\n\n公司：寺库、海康威视\n\n分类：React、Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/593)\n\n<br/>\n\n### 说一下 Vue3 与 Vue2 的对比\n\n公司：高德\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/302)\n\n<br/>\n\n### vue 对数组的方法做了重写的操作，如何实现对 vue2 中对数组操作的 push()方法\n\n公司：高德\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/307)\n\n<br/>\n\n### 简述 Vue 的基本原理\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/290)\n\n<br/>\n\n### 简述 Vue 的生命周期以及每个阶段做的事\n\n公司：脉脉、58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/289)\n\n<br/>\n\n### 说一下 Vue 组件的通信方式都有哪些？(父子组件，兄弟组件，多级嵌套组件等等)\n\n公司：脉脉、58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/288)\n\n<br/>\n\n### 说一下 Vuex 的原理以及自己的理解\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/287)\n\n<br/>\n\n### Vue v-model 是如何实现的，语法糖实际是什么\n\n公司：脉脉\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/286)\n\n<br/>\n\n### 说一下 Vue dom diff 算法\n\n公司：网易\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/281)\n\n<br/>\n\n### 说一下 Vue 的\\$nextTick 原理\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/263)\n\n<br/>\n\n### 说一下 vue-router 的原理\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/262)\n\n<br/>\n\n### Vue 是如何收集依赖的\n\n公司：自如\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/259)\n\n<br/>\n\n### 说一下 Vue 单页与多页的区别\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/412)\n\n<br/>\n\n### 说一下 Vue 路由实现原理\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/411)\n\n<br/>\n\n### Vue3.0 为什么要用 proxy？是怎么用 proxy 实现数据监听的?\n\n公司：虎扑、CVTE\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/396)\n\n<br/>\n\n### 说一下对 vue3.0 的了解，vue3.0 为什么要用代理\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/577)\n\n<br/>\n\n### 子组件可以直接改变父组件的数据么，说明原因\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/576)\n\n<br/>\n\n### Vue 中一次性 200 条弹幕怎么处理\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/458)\n\n<br/>\n\n### vue hooks 有哪些\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/705)\n\n<br/>\n\n### 介绍 Vue template 到 render 的过程\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/704)\n\n<br/>\n\n### 怎么定义 vue-router 的动态路由？怎么获取传过来的动态参数？\n\n公司：会小二\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/690)\n\n<br/>\n\n### 下面关于 Vue 说法正确的是？(单选题)\n\n```js\nA.data 中某一属性的值发生改变后，视图会立即同步进行重新渲染\nB.Vue 实例创建后再添加的属性，该属性改动将不会触发视图更新\nC.计算属性只有在它的相关依赖发生改变时才会重新求值\nD.Vue 组件的 data 选项必须是函数\n```\n\n公司：会小二\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/684)\n\n<br/>\n\n### 为什么要用 Vuex 或者 Redux，不要说为了保存状态\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/663)\n\n<br/>\n\n### 为什么 Vue data 必须是函数\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/662)\n\n<br/>\n\n### Vue data 中某一个属性的值发生改变后，视图会立即同步执行重新渲染吗？\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/658)\n\n<br/>\n\n### 简述 mixin、extends 的覆盖逻辑\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/654)\n\n<br/>\n\n### Vue 子组件和父组件执行顺序\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/653)\n\n<br/>\n\n### Vuex 和 localStorage 的区别\n\n公司：高思教育\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/827)\n\n<br/>\n\n### Vue 双向绑定原理\n\n公司：高思教育、安居客\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/824)\n\n<br/>\n\n### 说一下路由钩子在 Vue 生命周期的体现？\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/820)\n\n<br/>\n\n### 计算属性和普通属性的区别\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/819)\n\n<br/>\n\n### 描述下自定义指令(你是怎么用自定义指令的)\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/818)\n\n<br/>\n\n### 说一下 Vue 中所有带\\$的方法\n\n公司：58\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/817)\n\n<br/>\n\n### Vue-router 除了 router-link 怎么实现跳转\n\n公司：安居客\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/810)\n\n<br/>\n\n### 说一下 Vue 的 keep-alive 是如何实现的，具体缓存的是什么？\n\n公司：快手\n\n分类：Vue\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/207)\n\n<br/>\n\n"
  },
  {
    "path": "summarry/webpack.md",
    "content": "# 工程化题目汇总\n\n- [说下 webpack 的 loader 和 plugin 的区别，都使用过哪些 loader 和 plugin](#说下-webpack-的-loader-和-plugin-的区别都使用过哪些-loader-和-plugin)\n- [介绍下 webpack，并说下 Webpack 的构建流程](#介绍下-webpack并说下-webpack-的构建流程)\n- [说下 tree-shaking 的原理](#说下-tree-shaking-的原理)\n- [讲一下 webpack 原理， loader 和 plugin，你知道哪些模块化标准，说下 cjs 和 esmodule 的区别](#讲一下-webpack-原理-loader-和-plugin你知道哪些模块化标准说下-cjs-和-esmodule-的区别)\n- [Import 和 CommonJS 在 webpack 打包过程中有什么不同](#import-和-commonjs-在-webpack-打包过程中有什么不同)\n- [说一下 webpack 中 css-loader 和 style-loader 的区别，file-loader 和 url-loader 的区别](#说一下-webpack-中-css-loader-和-style-loader-的区别file-loader-和-url-loader-的区别)\n- [脚手架具体都做了哪些事，webpack 具体做了什么配置，怎样优化的打包大小](#脚手架具体都做了哪些事webpack-具体做了什么配置怎样优化的打包大小)\n- [介绍下 Webpack 的整个生命周期](#介绍下-webpack-的整个生命周期)\n- [webpack 离线缓存静态资源如何做用 localStore](#webpack-离线缓存静态资源如何做用-localstore)\n- [说一下 webpack 与 gulp 的区别（源码角度）](#说一下-webpack-与-gulp-的区别源码角度)\n- [A、B 两个条件组件，如何做到 webpack 只打包条件为 true 的组件，false 的组件不打包](#ab-两个条件组件如何做到-webpack-只打包条件为-true-的组件false-的组件不打包)\n- [webpack 怎么处理内联 css 的](#webpack-怎么处理内联-css-的)\n- [webpack 如何做异步加载](#webpack-如何做异步加载)\n- [Webpack 里面的插件是怎么实现的](#webpack-里面的插件时怎么实现的)\n- [dev-server 是怎么跑起来的](#dev-server-是怎么跑起来的)\n- [Webpack 抽取公共文件是怎么配置的](#webpack-抽取公共文件是怎么配置的)\n- [import { Button } from 'antd'，打包的时候只打包 button，分模块加载，是怎么做到的](#import--button--from-antd打包的时候只打包-button分模块加载是怎么做到的)\n- [使用 import 时，webpack 对 node_modules 里的依赖会做什么](#使用-import-时webpack-对-node_modules-里的依赖会做什么)\n- [前端怎么做单元测试](#前端怎么做单元测试)\n- [一般怎么组织 CSS（Webpack）](#一般怎么组织-csswebpack)\n- [webpack 如何配 sass，需要配哪些 loader，配 css 需要哪些 loader](#webpack-如何配-sass需要配哪些-loader配-css-需要哪些-loader)\n- [如何配置把 js、css、html 单独打包成一个文件](#如何配置把-jscsshtml-单独打包成一个文件)\n- [webpack 和 gulp 的优缺点](#webpack-和-gulp-的优缺点)\n- [如何实现分模块打包（多入口）](#如何实现分模块打包多入口)\n- [Webpack 打包时 Hash 码是怎么生成的？随机值存在一样的情况，如何避免？](#webpack-打包时-hash-码是怎么生成的随机值存在一样的情况如何避免)\n- [Webpack 做了什么？使用 webpack 构建时有无做一些自定义操作？](#webpack-做了什么使用-webpack-构建时有无做一些自定义操作)\n- [为什么用 gulp 打包 node](#为什么用-gulp-打包-node)\n- [Webpack 为什么慢，如何进行优化](#webpack-为什么慢如何进行优化)\n- [git pull -rebase 和 git pull 的区别是什么？](#git-pull--rebase-和-git-pull-的区别是什么)\n- [Webpack 打包出来的体积太大，如何优化体积？](#webpack-打包出来的体积太大如何优化体积)\n- [Webpack 热更新的原理](#webpack-热更新的原理)\n- [一个活动项目里包含多个活动，Webpack 如何实现单独打包某个活动？](#一个活动项目里包含多个活动webpack-如何实现单独打包某个活动)\n- [请说明 JavaScript 进行压缩、合并、打包实现的原理是什么？为什么需要压缩、合并、打包？分别列出一种常用工具或插件](#请说明-javascript-进行压缩合并打包实现的原理是什么为什么需要压缩合并打包分别列出一种常用工具或插件)\n- [请说出前端框架设计模式(MVVM 或 MVP 又或 MVC)的含义以及原理](#请说出前端框架设计模式mvvm-或-mvp-又或-mvc的含义以及原理)\n- [开发环境热更新的优化方式](#开发环境热更新的优化方式)\n- [AMD 和 CMD 有哪些区别？](#amd-和-cmd-有哪些区别)\n- [你是怎么配置开发环境的？](#你是怎么配置开发环境的)\n- [如何实现 webpack 持久化缓存](#如何实现-webpack-持久化缓存)\n- [webpack 做过哪些优化，开发效率方面、打包策略方面等等](#webpack-做过哪些优化开发效率方面打包策略方面等等)\n\n### 说下 webpack 的 loader 和 plugin 的区别，都使用过哪些 loader 和 plugin\n\n公司：阿里、滴滴、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/229)\n\n<br/>\n\n### 介绍下 webpack，并说下 Webpack 的构建流程\n\n公司：头条、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/227)\n\n<br/>\n\n### 说下 tree-shaking 的原理\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/226)\n\n<br/>\n\n### 讲一下 webpack 原理， loader 和 plugin，你知道哪些模块化标准，说下 cjs 和 esmodule 的区别\n\n公司：头条\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/216)\n\n<br/>\n\n### Import 和 CommonJS 在 webpack 打包过程中有什么不同\n\n公司：完美世界\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/360)\n\n<br/>\n\n### 说一下 webpack 中 css-loader 和 style-loader 的区别，file-loader 和 url-loader 的区别\n\n公司：网易\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/349)\n\n<br/>\n\n### 脚手架具体都做了哪些事，webpack 具体做了什么配置，怎样优化的打包大小\n\n公司：易车\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/340)\n\n<br/>\n\n### 介绍下 Webpack 的整个生命周期\n\n公司：滴滴、挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/339)\n\n<br/>\n\n### 如何用localStoragewebpack 离线缓存静态资源？\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/322)\n\n<br/>\n\n### 说一下 webpack 与 gulp 的区别（源码角度）\n\n公司：自如\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/265)\n\n<br/>\n\n### A、B 两个条件组件，如何做到 webpack 只打包条件为 true 的组件，false 的组件不打包\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/578)\n\n<br/>\n\n### webpack 怎么处理内联 css 的\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/575)\n\n<br/>\n\n### webpack 如何做异步加载\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/574)\n\n<br/>\n\n### Webpack 里面的插件是怎么实现的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/543)\n\n<br/>\n\n### dev-server 是怎么跑起来的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/542)\n\n<br/>\n\n### Webpack 抽取公共文件是怎么配置的\n\n公司：阿里\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/541)\n\n<br/>\n\n### import { Button } from 'antd'，打包的时候只打包 button，分模块加载，是怎么做到的\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/517)\n\n<br/>\n\n### 使用 import 时，webpack 对 node_modules 里的依赖会做什么\n\n公司：滴滴\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/516)\n\n<br/>\n\n### 前端怎么做单元测试\n\n公司：挖财\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/466)\n\n<br/>\n\n### 一般怎么组织 CSS（Webpack）\n\n公司：沪江\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/454)\n\n<br/>\n\n### webpack 如何配 sass，需要配哪些 loader，配 css 需要哪些 loader\n\n公司：饿了么\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/451)\n\n<br/>\n\n### 如何配置把 js、css、html 单独打包成一个文件\n\n公司：饿了么\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/450)\n\n<br/>\n\n### webpack 和 gulp 的优缺点\n\n公司：兑吧\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/424)\n\n<br/>\n\n### 如何实现分模块打包（多入口）\n\n公司：兑吧\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/422)\n\n<br/>\n\n### Webpack 打包时 Hash 码是怎么生成的？随机值存在一样的情况，如何避免？\n\n公司：微医\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/599)\n\n<br/>\n\n### Webpack 做了什么？使用 webpack 构建时有无做一些自定义操作？\n\n公司：微医\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/598)\n\n<br/>\n\n### 为什么用 gulp 打包 node\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/703)\n\n<br/>\n\n### Webpack 为什么慢，如何进行优化\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/701)\n\n<br/>\n\n### git pull -rebase 和 git pull 的区别是什么？\n\n公司：会小二\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/679)\n\n<br/>\n\n### Webpack 打包出来的体积太大，如何优化体积？\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/657)\n\n<br/>\n\n### Webpack 热更新的原理\n\n公司：酷狗\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/616)\n\n<br/>\n\n### 一个活动项目里包含多个活动，Webpack 如何实现单独打包某个活动？\n\n公司：酷狗\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/614)\n\n<br/>\n\n### 请说明 JavaScript 进行压缩、合并、打包实现的原理是什么？为什么需要压缩、合并、打包？分别列出一种常用工具或插件\n\n公司：玄武科技\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/834)\n\n<br/>\n\n### 请说出前端框架设计模式(MVVM 或 MVP 又或 MVC)的含义以及原理\n\n公司：玄武科技\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/833)\n\n<br/>\n\n### 开发环境热更新的优化方式\n\n公司：高思教育\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/823)\n\n<br/>\n\n### AMD 和 CMD 有哪些区别？\n\n公司：58\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/815)\n\n<br/>\n\n### 你是怎么配置开发环境的？\n\n公司：58\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/813)\n\n<br/>\n\n### 如何实现 webpack 持久化缓存\n\n公司：乘法云\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/807)\n\n<br/>\n\n### webpack 做过哪些优化，开发效率方面、打包策略方面等等\n\n公司：滴滴、快手、掌门一对一、高思教育\n\n分类：工程化\n\n[答案&解析](https://github.com/lgwebdream/FE-Interview/issues/25)\n\n<br/>\n\n"
  }
]