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 while循环在节点和浏览器中给出不同的结果

    我正在执行以下看似简单的代码 var number 0 while number lt 12 console log number number number 2 我在浏览器和 Node 中得到不同的结果 当我在 Firefox v 32
  • 如何通知 AngularJS 表单已由 jQuery 外部填写?

    我在 AngularJS 中有一个页面 其中有一个包含一些字段的表单 加载该页面后 我想要一个书签 单击该书签可根据配置文件中的数据填充字段 正在使用一个 JS 文件 该文件使用 jquery 来填充表单中的数据 当我做 id val ab
  • Ajax - 下载前获取文件大小

    基本上 我想弄清楚是否应该使用 AJAX 下载文件 具体取决于文件大小有多大 我想这个问题也可以改写为 如何仅获取ajax请求的标头 EDIT ultima rat0 https stackoverflow com users 239962
  • Javascript 设置输入字段的值

    因为虽然我无法设置 type text 的输入字段的值 以前 我总是使用这样的东西
  • 锁定 contenteditable="true" div 中的元素

    我有一个用于用户输入的 contenteditable div 当单击按钮时 它会显示替换某些单词的选项 首先 它删除所有 html 并创建可以替换单词的 span 元素 这些词的标记不同 我面临一些问题 当直接在跨度之前或之后单击并键入文
  • 如何偏移网格项目,同时移动其兄弟项目? [复制]

    这个问题在这里已经有答案了 我正在使用 CSS 网格 我想偏移一个元素 以便它在网格列上水平移动 我还希望这个元素保留其当前宽度 并应用偏移值此外到元素的宽度 Example container display grid grid temp
  • 为什么在 Javascript 中添加两位小数会产生错误的结果? [复制]

    这个问题在这里已经有答案了 可能的重复 JavaScript 的数学有问题吗 https stackoverflow com questions 588004 is javascripts math broken 为什么 JS 搞砸了这个简
  • 如果 jQuery 验证失败,JSLint 有什么用?

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 div 中加载页面?

    我被告知使用 Div 代替 iframe 是前进的方向 所以我使用横幅和主体中的框架 如何将我的index html加载到我的div中 你尝试过 jquery 的 load 吗 通过服务器端技术 您可以轻松地做到这一点
  • 如何删除html中单击的元素周围的虚线

    我发现如果有一个a页面中的链接不链接到新页面 那么当用户单击它时 该元素周围会有一条虚线 只有当用户单击页面中的其他任何内容时它才会消失 如何删除它 Example 注意元素周围的虚线Section 2 Use outline none锚定
  • 将美元金额动态转换为文本以包含“美元”和“美分”一词

    我需要将输入字段中输入的美元金额动态转换为文本 我能找到的最接近的解决方案几乎可以满足我的需求 但是 我希望结果文本包含 美元 一词 并删除句子末尾带有 美分 的 点 一词 这是起始原型和当前结果 function amountToWord
  • 如何确定输入的模式是“Int,VarChar,Date,Time ...”等

    我有一个下拉菜单 其中包含DataType 和一个文本框 这是用于输入的Regex Pattern 如果我进入 test 在文本框中 或从下拉菜单中选择Int 如果在文本框中输入 则其模式是错误的 0 9 那么它的correct patte
  • 元视口标签似乎被完全忽略或没有效果

    我把这个标签放在了头部一个网页 http www belovedobjects de 由于某种原因 它在我的 iPhone 上似乎被忽略了 甚至添加了user scalable no没有影响 我尝试了许多宽度 初始比例等值 似乎没有任何效果
  • JavaScript:发送 POST,重定向到响应

    我有一个带有 onclick 的图像 当单击事件触发时 我想发送 HTTP POST 并将 window location 重定向到 POST 的响应 我怎样才能做到这一点 只需将按钮绑定到表单元素的提交方法 重定向就会自然发生
  • 如何将参数传递给backbone.js 中事件对象中绑定的函数

    我需要为 Backbone 中的事件对象中使用的函数提供参数 var DocumentRow Backbone View extend tagName li className document row events click icon
  • Chrome 无法识别我对 javascript 文件的更改并加载旧代码?

    我在这里坐了将近一个小时来测试我正在构建的网站 由于我想查看代码中的新更改 因此我重新加载了代码 但它正在重新加载旧代码 我打开了 devetools 进行硬重新加载和清空缓存硬重新加载 它们都加载我的旧代码 我进入隐身模式 它做了同样的事
  • 从 Angularjs 应用程序中的 iOS Webview 调用 Javascript 函数

    我的问题是 当我尝试从 UIWebView 中调用 AngularJS 应用程序中存在的 javascript 函数时 该函数无法识别 当我在典型的 html 结构中调用该函数时 该函数会按预期被识别 下面提供的示例 目标 C void v
  • Redux Spread 运算符与 Map

    我有一个数组中的对象状态 在我的 ReduxReducer 中 const initialState items id 1 dish General Chicken price 12 1 quantity 0 id 2 dish Chick
  • 如何从 JavaScript 中的平面数据构建层次结构树?

    我有这样的 json 数据 Data Id 1 Name abc Parent Id 2 Name abc Parent 1 Id 3 Name abc Parent 2 Id 4 Name abc Parent 2 我想将这些数据转换为层
  • 创建一个跨浏览器 mixin 进行转换:旋转

    我想为 sass 创建一个 mixin 它将对指定元素应用旋转 mixin 应采用一个参数 表示要应用的旋转度数 从 css3please com 我找到了一种使用 CSS 实现此功能的跨浏览器方法 box rotate moz trans

随机推荐

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