前端面经1,25岁成功入职阿里P7的小哥哥告诉你

26 阅读4分钟
  1. this 指向this 关键字在 JavaScript 中指向调用该函数的对象。闭包是因为 JavaScript 中的函数可以访问其定义时所处的作用域链,而不是调用时所处的作用域链。
  2. ES6 新特性:ES6引入了许多新特性,包括箭头函数、let 和 const、解构赋值、模板字符串、Promise、class 等。
  3. var、let、const:它们都是声明变量的关键字,但在作用域、变量提升、重复声明等方面有所不同。var存在变量提升和全局作用域问题,而letconst不存在变量提升,并且有块级作用域,const声明的变量是常量,不可修改。
  4. Promise 原理:Promise 是一种异步编程的解决方案,其核心是解决回调地狱的问题,通过链式调用的方式来处理异步操作。
  5. 浏览器从输入到页面渲染的过程:主要包括 DNS 解析、建立 TCP 连接、发送 HTTP 请求、服务器处理请求并返回响应、浏览器解析 HTML、构建 DOM 树、解析 CSS、构建渲染树、布局和绘制等步骤。
  6. 强缓存和协商缓存:强缓存通过设置响应头来告诉浏览器可以直接使用本地缓存,而协商缓存则是在本地缓存失效时,通过与服务器通信来确定是否需要使用缓存。
  7. Vue 和 React 的区别:Vue 更注重于简单性和易用性,而 React 更加灵活,并且有更大的生态系统和更好的性能。
  8. Vue2 和 Vue3 的区别:Vue3 在性能、体积、响应式系统等方面进行了优化,并引入了 Composition API,使得代码更加灵活可维护。
  9. Vue 和 React 的相同点:它们都是流行的前端框架,都采用了组件化的开发方式,并且都有着良好的社区支持和文档。
  10. 虚拟 DOM:虚拟 DOM 是将真实 DOM 结构抽象成 JavaScript 对象,并在内存中进行操作,通过比较新旧虚拟 DOM 的差异,最小化页面重绘和重新布局的开销。
  11. Diff 算法:Diff 算法是虚拟 DOM 实现更新的核心算法,通过比较两棵树的差异,将更新操作应用到真实 DOM 上。
  12. HTTPS:HTTPS 是基于 SSL/TLS 协议的加密传输协议,通过对数据进行加密和认证,保证了数据传输的安全性。
  13. HTTP/2.0:HTTP/2.0 是 HTTP 协议的新版本,主要提供了多路复用、头部压缩、服务器推送等功能,以提高性能和效率。
  14. 打包工具:除了 webpack 外,还有 Parcel、Rollup 等打包工具,它们各有特点和适用场景。
  15. Webpack 原理:Webpack 是一个模块打包工具,通过 loader 和 plugin 的机制,将各种资源模块打包成静态资源。
  16. Vite 原理:Vite 是一种基于浏览器原生 ES 模块导入的开发服务器和构建工具,利用浏览器的本地编译能力,实现了快速的冷启动和热更新。
  17. 解决白屏问题:可以通过代码拆分、预加载、懒加载等手段来优化页面加载速度,减少白屏时间。
  18. 首屏优化方案:包括减少 HTTP 请求、压缩资源、使用 CDN、优化图片、懒加载等手段来加速首屏加载。

基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

开源分享:docs.qq.com/doc/DSmRnRG…