常见的前端面试题

前端面试题

(一)JavaScript

1 防抖和节流,手写

2 介绍一下原型和原型链

3 异步请求方案

4 同源策略、跨域,解决方案,jsonp跨域原理,实现一个jsonp

5 typeof 和 instanceof,typeof(null)输出什么?

6 forEach和map的区别

7 js数据类型

8 事件循环和任务队列

9 flex

10 回流和重绘,transform会造成回流吗?

11 深拷贝和浅拷贝,手写

12 口述new关键字

13 实现一个new

14 js是单线程还是多线程?除了HTML5新特性之外如何实现js多线程?

15 内存泄漏和垃圾回收

16 什么是闭包?为什么要用闭包?好处和坏处

17 浏览器缓存有哪些?说说Storage/session/cookie的区别以及各自适用于那些场景?

18 什么是作用域和作用域链?

19 setTimeout和setInterval的区别?如何实现隔一秒递增输出数字

20 什么是异步和同步?

21 死锁是什么?

22 事件委托,事件冒泡

23 call apply bind的区别,实现一个bind call apply?

24 .bind(object).bind(windows) 后的this指向

25 promise介绍,实现一个promise

26 class定义类和function定义类的区别?

27 创建对象的方法?

28 继承的方法?

29 数组有哪些方法?

30 变量提升

31 设计模式?

32 == 和 === 的区别?

(二)HTML/HTMl5

1 HTML语义化标签

2 常用的HTML5标签

3 link和import的区别

4 常见的meta标签

5 对HTML语义化的理解

(三)CSS/CSS3

1 垂直居中

2 三栏布局(左右定宽,中间自适应)

3 css选择器和优先级

4 css引入方式

5 inline和inline-block的区别

6 px/em/rem的区别

7 css position有什么?fix和absolute的区别?

8 两栏布局

9 css盒模型

10 BFC是什么?触发bfc的方式,bfc有哪些用?

11 animation的参数,怎样实现一个动画?

12 清除浮动的方案

13 有哪些css3新特性?

(四)网络

1 get和post的区别

2 HTTP1.1和1.2的区别

3 HTTPS

4 发起HTTP请求的方式有哪些

5 HTTP协议在哪一层

6 计算机网络osi七层模型、tcp/ip分层

7 HTTP状态码

8 强缓存和协商缓存

9 TCP和UDP区别?

10 浏览器解析URL的流程?

11 为什么TCP连接是可靠的?

12 TCP三次握手,四次挥手?

(五)React

1 封装组件

2 React框架和其他框架的区别

3 生命周期,性能提升的生命周期?

4 虚拟DOM和DIFF算法

5 Hook了解吗?

6 介绍一下redux

7 setState的更新流程(这个考的是isbatchingUpdate那里)

8 react key有什么用?

9 react组件传参

10 MVVM、 MVC?

11 类组价和函数组件的区别?

12 受控组件和非受控组件?

13 高阶组件?

14 react的通信方式?

(六)Webpack

1 会写webpack插件吗?怎么配置打包成多个文件?

2 webpack有哪些配置?loader和plugins有什么区别?

3 有哪些常见的loader?

4 有哪些常见的plugins

5 webpack构建流程?

6 HMR(热更新又称热替换)原理?

7 优化webpack的构建速度?

8 source map

9 tree shaking

10 代码分割

11webpack 打包原理?

12 什么是bundle 什么是chunk 什么是moudle?

13 Babel的原理?

(七)ES6

1 let和var,const的区别,const定义的对象能否被修改?

2 const一个数组,能否push一个数据进去,原因

3 箭头函数和其他函数的区别

4 this指针的指向

5 用过哪些ES6新特性?

(八)算法

1 数组去重(多种写法)

2 数组扁平化

3 数组柯里化

(九)数据结构

1 各种数据结构(栈、队列、数、链表…)

2 排序算法和复杂度

3 进程和线程

(十)Git

1 提交代码到主分支要经历哪些操作?

2 列举工作中常用的几个git命令?

3 提交代码时发生冲突,如何解决?冲突是如何产生的?

4 git fetch 和git pull的区别?

(十一)其他

1 前端页面加载慢的优化方式,越多越好

2 一个页面上有很多图片,优化(精灵图 ,懒加载)

3 前端安全 ,xss和crsf

4 浏览器渲染机制,会不会被阻断

5 怎么检测用户的设备信息?

6 移动端怎么解决12px字体的问题,怎么解决0.5px的线条

7 移动端的click事件延迟200ms-300ms的原因,怎么解决

8 移动端手指触碰后的事件api触发顺序

9 常见的浏览器兼容问题?

10 常见的浏览器内核?


以后会持续更新…

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值