2022字节前端面试题汇总

HTML

 

  • HTML5新特性,语义化
  • 浏览器的标准模式和怪异模式xhtml和html的区别
  • 使用data-的好处meta标签
  • canvas
  • HTML废弃的标签
  • IE6 bug,和一些定位写法css js放置位置和原因什么是渐进式渲染html模板语言meta viewport原理

 

CSS

  • 盒模型,box-sizing
  • cSS3新特性,伪类,伪元素,锚伪类cSS实现隐藏页面的方式
  • 如何实现水平居中和垂直居中。说说position,display
  • 请解释*{box-sizing:border-box;}的作用,并说明使用它的好处
  • 浮动元素引起的问题和解决办法?绝对定位和相对定位,元素浮动后的display值
  • link和@import引入css的区别
  • 解释一下css3的flexbox,以及适用场景inline和inline-block的区别
  • 哪些是块级元素那些是行级元素,各有什么特点
  • grid布局
  • table布局的作用
  • 实现两栏布局有哪些方法?css dpi
  • 你知道attribute和property的区别么
  • css布局问题? css实现三列布局怎么做?如果中间是自适应又怎么做?
  • 流式布局如何实现,响应式布局如何实现
  • 移动端布局方案
  • 实现三栏布局(圣杯布局,双飞翼布局,flex)
  • 清除浮动的原理
  • overflow:hidden有什么缺点?
  • padding百分比是相对于父级宽度还是自身的宽度
  • css3动画, transition和animation的区别,animation的属性,加速度,重力的模拟实现csS 3 如何实现旋转图片( transform:rotate)
  • sass less
  • 对移动端开发了解多少?(响应式设计、Zepto; @media 、 viewport、JavaScript正则表达式判断平台。)
  • 什么是bfc,如何创建bfc?解决什么问题?css中的长度单位(px,pt,rem,em,ex,vw,vh,vh,vmin,vmax)
  • cSS选择器的优先级是怎样的?
  • 雪碧图
  • svg
  • 媒体查询的原理是什么?
  • cSS的加载是异步的吗?表现在什么地方?常遇到的浏览器兼容性问题有哪些?常用的hack的技巧
  • 外边距合并
  • 解释一下"::before"和":after"中的双冒号和单冒号的区别


JS

  • js的基本类型有哪些?引用类型有哪些? null和undefined的区别。
  • 如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)
  • Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?
  • JS常见的dom操作api
  • 解释一下事件冒泡和事件捕获
  • 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?
  • 对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?
  • this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?
  • call,apply,bind
  • 显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链
  • 创建对象的多种方式
  • 实现继承的多种方式和优缺点new一个对象具体做了什么手写Ajax,XMLHttpRequest变量提升
  • 举例说明一个匿名函数的典型用例
  • 指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?
  • attribute和property的区别
  • documentload和documentDOMContentLoaded两个事件的区别
  • ===和== , [] === [], undefined ===undefined,[] == [], undefined == undefinedtypeof能够得到哪些值
  • 什么是"use strict",好处和坏处
  • 函数的作用域是什么? js 的作用域有几种?JS如何实现重载和多态
  • 常用的数组api,字符串api
  • 原生事件绑定(跨浏览器), dom0和dom2的区别?
  • 给定一个元素获取它相对于视图窗口的坐标如何实现图片滚动懒加载
  • js的字符串类型有哪些方法?正则表达式的函数怎么使用?
  • 深拷贝
  • 编写一个通用的事件监听函数
  • web端cookie的设置和获取
  • setTimeout和promise的执行顺序
  • JavaScript的事件流模型都有什么?
  • navigator对象, location和history
  • js的垃圾回收机制
  • 内存泄漏的原因和场景DOM事件的绑定的几种方式
  • DOM事件中target和currentTarget的区别typeof和 instanceof区别, instanceof原理js动画和css3动画比较
  • JavaScript倒计时(setTimeout)js处理异常
  • js的设计模式知道那些
  • 轮播图的实现,以及轮播图组件开***播10000张图片过程
  • websocket的工作原理和机制。
  • 手指点击可以触控的屏幕时,是什么事件?什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现?(函数柯里化一些了解,以及在*函数式编程的应用,最后说了一下JS中bind函数和数组的reduce方法用到了函数柯里化。)
  • JS代码调试

框架

  • 使用过哪些框架?
  • zepto 和 jquery是什么关系,有什么联系么?
  • jquery源码如何实现选择器的,为什么$取得的对象要设计成数组的形式,这样设计的目的是什么
  • jquery如何绑定事件,有几种类型和区别什么是MVVM,MVC,M***
  • Vue和Angular的双向数据绑定原理Vue,Angular组件间通信以及路由原理react和vue的生命周期
  • react和vue的虚拟dom以及diff 算法vue的observer,watcher,compile
  • react和angular分别用在什么样的业务吗?性能方面和MVC层面上的区别
  • jQuery对象和JS的Element有什么区别jQuery对象是怎么实现的
  • jQuery除了它封装了一些方法外,还有什么值得我们去学习和使用的?
  • jQuery的$('xxx')做了什么事情
  • 介绍一下bootstrap的栅格系统是如何实现的

浏览器相关

  • 跨域,为什么JS会对跨域做出限制前端安全:xss,csrf...
  • 浏览器怎么加载页面的? script脚本阻塞有什么解决方法? defer和async的区别?
  • 浏览器强缓存和协商缓存
  • 浏览器的全局变量有哪些
  • 浏览器同一时间能够从一个域名下载多少资源
  • 按需加载,不同页面的元素判断标准
  • web存储、cookies、localstroge等的使用和区别
  • 浏览器的内核
  • 如何实现缓存机制?(从200缓存,到cache到etag再到)
  • 说一下200和304的理解和区别什么是预加载、懒加载
  • 一个XMLHttpRequest 实例有多少种状态?dns解析原理,输入网址后如何查找服务器服务器如何知道你?
  • 浏览器渲染过程ie的某些兼容性问题session
  • 拖拽实现
  • 拆解url的各部分

ES6

  • 谈一谈promise
  • 所有的ES6特性你都知道吗?如果遇到一个东西不知道是ES6还是ES5,你该怎么区分它es6的继承和es5的继承有什么区别
  • promise封装ajax
  • let const的优点
  • es6 generator是什么, async/await 实现原理
  • ES6和node的commonjs模块化规范区别箭头函数,以及它的this

计算机网络

  • HTTP协议头含有哪些重要的部分,HTTP状态码
  • 网络url输入到输出怎么做?
  • 性能优化为什么要减少HTTP访问次数?Http请求的过程与原理
  • https(对是https)有几次握手和挥手?https的原理。
  • http有几次挥手和握手? TLS的中文名?TLS在哪一网络层?
  • TCP连接的特点,TCP连接如何保证安全可靠的?
  • 为什么TCP连接需要三次握手,两次不可以吗.为什么
  • 为什么tcp要三次握手四次挥手?
  • tcp的三次握手和四次挥手画图(当场画写ack和seq的值)?
  • tcp与udp的区别
  • get和post的区别?什么情况下用到?http2 与http1的区别?
  • websocket
  • 什么是tcp流,什么是http流
  • babel是如何将es6代码编译成es5的http2的持久连接和管线化
  • 域名解析时是tcp还是udp
  • 域名发散和域名收敛
  • Post—个file的时候file放在哪的?
  • HTTP Response的Header里面都有些啥?

工程化

  • 对webpack,gulp, grunt等有没有了解?对比。
  • webpack的入口文件怎么配置,多个入口怎么分割。
  • webpack的loader和plugins的区别gulp的具体使用。
  • 前端工程化的理解、如何自己实现一个文件打包,比如一个JS文件里同时又ES5和ES6写的代码,如何编译兼容他们

模块化

  • 对AMD ,CMD,CommonJS有没有了解?
  • 为什么要模块化?不用的时候和用RequireJs的时候代码大概怎么写?
  • 说说有哪些模块化的库,有了解过模块化的发展的历史吗?
  • 分别说说同步和异步模块化的应用场景,说下AMD异步模块化实现的原理?
  • 如何将项目里面的所有的require的模块语法换成import的ES6的语法?
  • 使用模块化加载时,模块加载的顺序是怎样的,如果不知道,根据已有的知识,你觉得顺序应该是怎么样的?

Nodejs

  • 对nodejs有没有了解
  • Express和koa有什么关系,有什么区别?nodejs适合做什么样的业务?
  • nodejs与php, java有什么区别
  • Nodejs中的Stream和Buffer有什么区别?node的异步问题是如何解决的?
  • node是如何实现高并发的?
  • 说一下Nodejs 的event loop的原理

性能优化

  • cdn的用法是什么?什么时候用到?浏览器的页面优化?
  • 如何优化 DOM操作的性能单页面应用有什么SEO方案?
  • 单页面应用首屏显示比较慢,原因是什么?有什么解决方案?

 

posted @ 2022-08-10 18:11  grigeorge  阅读(364)  评论(0编辑  收藏  举报