2020web前端面试整理

2023-11-16

背景:2020年是比较特殊的一年,由于新冠影响导致很多事情发生了变化,同时也改变了人们的一些常规习惯,就拿换工作来说,为了减少大家的出行和接触,线上视频、电话面试成了趋势,但是万变不离其宗,技术才是王道,下面是个人近期的一些面试经验和需要大家知道的问题整理给大家,希望大家都能够有所提高,面试就像相亲,希望大家都能够顺利找到彼此满意的那个,哈哈。

Html、Css篇

1.谈谈你对h5标签语义化的理解以及语义化的优点

2.html5新增的标签有哪些?(结构标签:article、aside等、表单标签:video、audio、embed等、表单标签:email、url等)大家自行归类整理

3.css3新特性(选择器、渐变、阴影、多列布局、圆角、动画、过渡、盒模型等)

4.h5存储方式(A.本地存储localstorage、sessionstorage;B.离线存储application cache;C:本地数据库IndexedDB和Web SQL(已取消))

5.cookie深入了解(包括起源、属性、http头的设置、跨域携带、与本地存储的对比、与session的关系等)

6.两种盒模型(w3c和IE),以及可以怎么设置等

7.BFC深刻了解

8.动画和过渡

9.canvas

10.深刻区分inline、inline-block、block

11.实现固定和不固定宽高容器水平垂直居中的方法,基础题,尽可能多的方式

12.flex深刻了解,实现各种布局

13.rem的原理

14.你常用的实现移动端适配的方法

15.移动端常遇到的兼容问题(软键盘弹起、点滴穿透等)

16.1像素问题的处理方案

17.你遇到和处理过的各大浏览器的兼容问题

javascript篇

1.闭包深刻理解

2.原型链及原型深刻理解

3.继承的方式(es5、es6)

4.数组的常用方法

5.对象的深浅拷贝以及优缺点

6.数组去重的方法,基础题,尽可能多的实现

7.事件循环(Event loop)

8.宏任务和微任务结合事件循环来说

9.js垃圾回收机制(标记清除、引用计数),哪些情况会造成内存泄漏

10.this指向问题(普通函数、箭头函数)

11.基本类型以及引用类型深刻理解

12.let、const、var的理解(变量提升、块级作用域等)

13.const是怎么实现的

14.扩展运算符的使用

15.解构赋值

16.JSBridge实现原理

17.数组扁平化的方法(多维数组降维)尽可能多

18.谈谈你对事件冒泡和捕获的理解

19.事件代理和事件委托

20.改变this指向的方法

21.函数柯里化的理解

22.尾函数和尾递归的理解

23.promise的使用和理解,手写使用promise封装一个异步请求

24.手写实现一个promise以及手写promise的all或者race

25.async await和promise的区别

26.理解Generator

27.防抖和节流的理解(手写实现

28.手写实现斐波契那

29.手写实现阶乘并使用尾调用优化

30.es6 class理解

31.高阶函数的理解与使用

32.jquery是怎么实现可以链式调用的

33.谈谈你对模块化的理解(AMD、CMD以及es6的import、export等)

34.跨域的方法以及可能出现的问题

35.web安全问题,常见攻击方式以及预防方法

36.算法类:手写冒泡、快排、查找出现最多次数的字符串、判断数组中是否有两位数字之和、用正则实现trim()清除字符串两端空格、删除相邻相同的字符串、判断是否是回文字符串、字符串原位反转等以上需要手写并考虑复杂度

框架类vue(为主)、react

1.vue和react的区别

2.如果让你选择你怎么选择使用哪个框架

3.你怎么搭建一个vue项目或者react项目

4.vue有哪些生命周期以及每个周期内可以做什么?

5.组件间传值的方法有哪些?(常用:props、event、vuex、派发自定义事件$emit;边界情况:$parent、$children、$root、$refs、provide/inject;非prop特性:$attrs、$listeners)

6.前端路由的理解

7.hash和history的理解

8.数据双向绑定的原理(MVVM)

9.vue模版是怎么渲染的,尽可能详细或者说前端修改了一个数据具体经历了什么?

10.虚拟dom的理解

11.key的作用理解

12.路由的常用方法

13.动态路由

14.手写tree组件说说你的思路

15.你过去项目中封装了哪些基础组件,举例说说

16.是否读过框架的源码,谈谈它的整体设计

17.vue3.0的改进

18.vue中对哪些数组方法进行了改写,是怎么改写的?

19.vue首屏优化的方案

20.keep-alive、nextTick

21.v-if、v-show区别以及v-if和v-for优先级

22.v-model具体是怎么实现的?

23.vue.compontent和vue.extend的区别和联系

webpack篇

1.webpack和grunt、gulp的区别

2.webpack的版本

3.你在webpack中配置过哪些内容,作用是什么?

4.webpack打包的原理是什么?

5.打包之后的hash数的作用是什么?

6.怎么通过配置实现只打包有修改的部分的内容,然后上传,而不是所有的重新打包?

7.怎么通过配置实现公共代码在多项目中公用?

8.切片是怎么实现的?

9.有哪些常见的Loader?他们是解决什么问题的?

10.有哪些常见的Plugin?他们是解决什么问题的?

11.Loader和Plugin的不同?

12.webpack热更新是怎么实现的?原理是什么?

13.webpack构建流程是什么?

14.怎么配置单页应用,怎么配置多页应用?什么时候需要配置多页应用?

15.webpack怎么优化前端性能?你用过哪些?

http、https篇

1.http和https的区别?

2.http1.0和1.1、2.0的区别?

3.http有哪些头信息?

4.常用的http状态码以及他们对应的内容?

5.说说输入一个地址发生了什么?尽可能详细

6.谈谈你对DNS的了解

7.http缓存

8.重绘和重排

9.你对服务器渲染了解吗?

前沿技术关注

1.有没有自己的博客和github?

2.平时怎么关注一些前端的内容?

3.最近在看些什么书?

4.node有写过吗?

5.Typescript有写过吗?

6.谈谈你对原生和h5交互的理解,以及原理是什么?

7.pwa、flutter、快应用、小程序的原理和区别了解吗?

8.跨端技术ui-app、taro

9.设计模式

10.前端性能参数FP、FCP、FMP、LCP等

11.常用的抓包工具以及扩展有哪些?

12.项目性能优化做过什么?

个人认知

1.说说你的优缺点?

2.说说你过去项目中最有成就的是什么?你过去遇到过什么难题,怎么解决的?让你印象深刻的事情等?

3.本次找工作看重的是什么?

4.说说你自己未来三到五年的规划?

5.平时周末会做些什么?

6.有没有特别喜欢的事情(爱好)?

7.对加班什么看法?

特别推荐

找工作一定不要着急,为了自己想去的那个厂,大家一定要做好准备之后再动手(切记切记),一定要抑制住面试的冲动,避免错失唯一的机会,建议找工作前花个两周左右把知识系统一下,推荐把红皮书(高程)和es6过一遍,你会受益匪浅的。以上,希望对大家有所帮助,后续如果有落下的重点会及时同步大家,预祝大家都能找到那个合适的厂。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020web前端面试整理 的相关文章

  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • 引导程序提前输入未填充承诺的响应

    我的引导程序预输入如下
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • HTML 锚点,禁用样式

    我有一些 html 锚链接代码 与文档的其余部分不同 我希望它看起来不是链接 有没有一种简单的方法可以禁用由于将文本包装在锚标记中而引起的样式更改 而不必强行使其相同 即 如果我更改正文字体样式 我不必也更改其他一些 link东西 将颜色设
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro

随机推荐

  • *python解决狼羊菜过河问题

    python解决狼羊菜过河问题 A岸有菜 羊 狼 农夫农夫必须将他们都送到B岸每次只能送一个 在保证他们不会被吃的前提下 完成任务 并得出步骤 代码 A 狼 1 羊 1 菜 1 B 狼 0 羊 0 菜 0 size len A count
  • 没有与这些操作数匹配的`“>>“`运算符错误;

    报错信息 没有与这些操作数匹配的 gt gt 运算符错误 网上查询大多是少了头文件
  • python反混淆javascript代码

    JavaScript代码一般都是可见的 一些关键的加密算法写在JS里其实很不安全 代码混淆能将Js进行压缩 使之变成不易读的代码 如下图所示 当然这难不倒我们 网上有很多js反混淆的工具 作者推荐使用jsbeautifier 因为最近项目用
  • CSDN上传付费资源需要创作者等级Lv4,我的升级之路,本文持续更新,欢迎各位分享自己的升级经验

    首先来看看官方的要求 创作者等级Lv4 实名认证 原力等级 5 目前惟一满足的实名认证 创作者等级升级官方说明 计分标准 计分规则 分值 说明 资源量 每上传1个资源 审核通过 5分 若自行或被平台删除及下架则扣除对应分数 分数实时更新 阅
  • 【React】react-router-dom

    文章目录 1 路由器组件 lt HashRouter gt lt BrowserRouter gt 2 路由 2 1 lt Route gt 2 1 1 lt Route element gt 2 1 2 lt Route path gt
  • 函数内的ajax同步请求导致遮罩层失效、或者导致loading正在加载提示失效问题

    功能需求 编写点击按钮 弹出loading遮罩层提示正在加载中 同时查询后台信息 拼接数据后渲染到列表时 为了保障渲染时 列表中的数据已经拼接完成 所以在for循环中使用同步ajax进行请求 在success方法中进行拼接 function
  • JUC多线程

    JUC多线程 1 读写锁 ReadWriteLock 2 线程八锁 3 线程池 4 线程池调度 分支合并框架 ForkJoinPool 1 读写锁 ReadWriteLock 读读之间不需要互斥 读写 写写之间需要互斥 通过readWrit
  • GCC的-fomit-frame-pointer编译选项的含义

    GCC的 fomit frame pointer编译选项的含义 优化你的软件时 发觉 fomit frame pointer 这个选项还是蛮有用的 GCC手册上面这么说 Don t keep the frame pointer in a r
  • LVS DR模式负载均衡群集部署

    目录 1 LVS DR 模式的特点 1 1 数据包流向分析 1 2 DR 模式的特点 2 DR模式 LVS负载均衡群集部署 2 1 配置负载调度器 2 1 1 配置虚拟 IP 地址 2 1 2 调整 proc 响应参数 2 1 3 配置负载
  • Linux Top 命令解析

    转自 http www jb51 net LINUXjishu 34604 html TOP是一个动态显示过程 即可以通过用户按键来不断刷新当前状态 如果在前台执行该命令 它将独占前台 直到用户终止该程序为止 比较准确的说 top命令提供了
  • SSM框架实现简单的增删改查

    引言 在中软国际实习的第三天 培训老师要求我们整合出SSM框架实现简单的增删改查 我参考某篇博文链接完成了用户的增删改除 故发此博文以供后来者参考 开发工具 IntelliJ IDEA Ultimate 2018 2 2 Apache to
  • react 更新阶段的生命周期函数

    shouldComponentUpdate nextProps nextState 你可以通过这个方法控制组件是否重新渲染 如果返回 false 组件就不会重新渲染 这个生命周期在 React js 性能优化上非常有用 componentW
  • PyTorch 重磅更新,不只是支持 Windows

    翻译 林椿眄 出品 AI 科技大本营 公众号ID rgznai100 这次版本的主要更新一些性能的优化 包括权衡内存计算 提供 Windows 支持 24个基础分布 变量及数据类型 零维张量 张量变量合并 支持 CuDNN 7 1 加快分布
  • 模型部署之TorchScript

    一 关于torchscript和jit介绍 1 关于torchscript TorchScript是Pytorch模型 继承自nn Module 的中间表示 保存后的torchscript模型可以在像C 这种高性能的环境中运行 TorchS
  • 浏览器定位是如何实现的?为什么会有浏览器定位失败的情况?

    高德地图开放平台JavaScript API提供的Geolocation定位插件 融合了HTML5 Geolocation定位接口 精确IP定位服务 以及安卓定位sdk定位 其中与安卓定位sdk的结合使用适用于开发安卓系统的H5应用 需同时
  • STM32H743必要外围电路分析

    BOOT STM32采用ARM内核 和ARM处理器一样 都有专门的boot脚决定单片机从何处启动 在官方数据手册的第105页 我们可以看到 系统复位后 在SYSTICK的第四个上升沿锁存BOOT引脚的值 复位后 BOOT引脚可以由用户自由配
  • pytorch报错大全

    1 IndentationError unexpected indent 缩进有问题 2 IndexError list index out of range 情况一 list index 中的index下标超出范围了 所以出现了访问越界
  • vs插件,插件大全,插件大全全家桶

    插件大全全家桶 插件大全全家桶 但是本着点赞自愿 收藏吃灰 还是多少可以支持一下
  • Linux服务器搭建Docker

    Linux服务器搭建Docker 一 Docker概述 Docker的出现的原因 二 Docker安装 1 环境准备 2 下载安装 3 阿里云镜像加速 三 Docker命令 1 镜像命令 2 容器命令 四 操作命令 1 生成镜像 commi
  • 2020web前端面试整理

    背景 2020年是比较特殊的一年 由于新冠影响导致很多事情发生了变化 同时也改变了人们的一些常规习惯 就拿换工作来说 为了减少大家的出行和接触 线上视频 电话面试成了趋势 但是万变不离其宗 技术才是王道 下面是个人近期的一些面试经验和需要大