当前位置: 首页 > Web前端 > HTML

浅谈2018年的前端面试

时间:2023-04-02 18:27:46 HTML

虽然今年没有跳槽的打算,但是为了跟上时代的步伐,还是忍不住整理了一下最新的前端知识总结要点1.HTMLHTML5的新特性,语义浏览器标准模式和怪异模式的区别xhtml和html使用data-meta标签的好处canvasHTML过时标签IE6bug,以及一些定位写cssjs放置和原因什么是渐进式渲染html模板languagemetaviewport原理2.CSS盒模型、box-sizingCSS3新特性、伪类、伪元素、anchor伪类CSS实现隐藏页面的方式,如何实现水平居中和垂直居中。说说位置,显示,请说明*{box-sizing:border-box;}的作用,并说明使用它的好处。浮动元素引起的问题及解决方案?绝对定位和相对定位,浮动元素显示值link和@import引入css的区别讲解css3的flexbox,以及inline和inline-block在适用场景的区别哪些是块级元素哪些是行级元素,它们是什么?特性网格布局表格布局的作用实现两列布局的方法有哪些?cssdpi你知道attribute和property的区别css布局问题吗?如何用css实现三栏布局?如果中间是自适应的呢?如何实现流体布局,如何实现响应式布局,如何实现移动布局方案,实现三栏布局(圣杯布局,双飞翼布局,flex布局)?填充百分比是相对于父级宽度还是它自己的宽度?css3动画,transition和animation的区别,动画的属性,加速度,模拟重力实现CSS3如何实现旋转图片(transform:rotate)sassless你对移动端开发了解多少?(响应式设计,Zepto;@media,viewport,JavaScript正则表达式判断平台。)什么是bfc以及如何创建bfc?它解决了什么问题?CSS中长度单位(px、pt、rem、em、ex、vw、vh、vh、vmin、vmax)的CSS选择器优先级是多少?sprite图片svg媒体查询的原理是什么?CSS加载是异步的吗?体现在哪里?经常遇到的浏览器兼容性问题有哪些?常用hack技巧Marginmerging讲解“::before”和“:after”中双冒号和单冒号的区别3.JSjs的基本类型有哪些?什么是引用类型?null和undefined的区别。如何判断一个变量是Array类型?如何判断一个变量是Number类型?(不止一个)Object是引用类型吗?引用类型和原始类型有什么区别?哪个在堆上,哪个在栈上?JS常用dom操作api详解事件冒泡和事件捕获事件委托(手写例子),事件冒泡和捕获,如何防止冒泡?如何组织默认事件?闭包的理解?什么时候形成闭包?闭包实现方法?关闭的优点和缺点?这个有哪些使用场景?C和Java中的this和this有什么区别?如何改变这个值?call,apply,bind显示原型和隐式原型,手绘原型链,什么是原型链?为什么会有原型链多种创建对象的方式多种实现继承的方式及其优缺点New对象到底是做什么的?手写Ajax、XMLHttpRequest变量提升Example一个匿名函数的典型用例指出JS的宿主对象和本机对象的区别,为什么扩展JS内置对象是不好的做法?内置对象和函数是什么?attribute和property的区别文档加载和文档的区别DOMContentLoaded===and==,[]===[],undefined===undefined,[]==[],undefined==undefinedTypeof可以得到什么什么“usestrict”的值是什么,函数的作用域是什么?js有多少作用域?JS如何实现重载和多态常用数组api、字符串api原生事件绑定(跨浏览器)、dom0和dom2的区别?给定一个元素,获取其相对于视图窗口的坐标。如何实现图片滚动。js懒加载string类型有哪些方法?如何使用正则表达式的功能?深拷贝写一个通用的事件监听函数在web端设置cookie,获取setTimeout和promise的执行顺序JavaScript的事件流模型是什么?navigator对象、location和history的垃圾回收机制内存泄漏的原因及场景DOM事件的几种绑定方式DOM事件中target和currentTarget的区别typeof和instanceof的区别,instanceof的原理js动画和css3动画的比较javascript倒计时(setTimeout)js异常处理设计模式js知道那些轮播图的实现,以及轮播图组件的开发,websocket在轮播10000张图片过程中的工作原理和机制当手指点击触摸屏时会发生什么事件?什么是函数套用?并告诉我函数柯里化的实现应用了哪些JSAPI?(对functioncurrying的一些理解,以及函数式编程的应用,最后说说函数currying在js中bind函数和数组的reduce方法中的使用。)JS代码调试4.ES6说说所有ES6的promises你做吗知道所有的特点?如果遇到不知道是ES6还是ES5的东西,怎么区分呢?es6继承和es5继承有什么区别?Promise封装了ajaxletconst的优点。let和const都只在声明所在的块级范围内有效。let声明的变量是可以改变的,无论是值还是类型,都没有限制。const声明的变量不能改变值,也就是说变量一旦被const声明,必须立即初始化,不能留待以后赋值。什么是es6生成器,async/await实现原理es6和node的commonjs模块化规范区分箭头函数,其this5.计算机网络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域名发散和域名收敛发文件时,文件放在哪里?HTTP响应的标头中有什么?6、浏览器相关跨域,为什么JS限制跨域前端安全:xss、csrf……浏览器如何加载页面?脚本阻塞的解决方案是什么?defer和async的区别?强大的浏览器缓存和协商缓存浏览器的全局变量有哪些?如何实现缓存机制?(从200缓存,到缓存到etag再到)先说说200和304的理解和区别,什么是preloading和lazyloading?XMLHttpRequest实例有多少种状态?dns解析原理,输入url后如何找到服务器,服务器怎么知道你的?浏览器渲染过程中的一些兼容性问题iesession拖拽拆解url的各个部分7.工程你知道webpack、gulp、grunt等吗?比较。如何配置webpack的入口文件,如何划分多个入口。webpack的loader和plugins的区别gulp的具体使用。了解前端工程,如何自己实现一个文件包,比如把ES5、ES6写的代码写在一个JS文件中,如何编译兼容8、模块化你知道AMD、CMD、CommonJS吗?为什么要模块化?不用的时候和用RequireJs的时候怎么写代码?说说模块化库,你了解过模块化发展的历史吗?下面分别说说同步和异步模块化的应用场景,说说AMD的异步模块化实现原理?如何将项目中所有requiremodule语法替换为importES6语法?使用模块化加载时,加载模块的顺序是什么?如果您不知道,您认为该顺序应该基于现有知识?9、框架用了哪些框架?zepto和jquery有什么关系?有什么联系吗?jquery的源码是如何实现selector的,$获取的对象为什么要设计成数组的形式,这样设计的目的是什么,jquery是如何绑定事件的,有几种类型和区别,什么是MVVM、MVC、MVPVue和AngularBinding原理Vue的双向数据、Angular组件间通信和路由原理React和Vue生命周期React和Vue的虚拟dom和diff算法Vue的observer、watcher、compile以及React是什么业务和角度用于?性能和MVC级别的区别jQuery对象和JS元素有什么区别?jQuery的$('xxx')有什么作用?下面介绍一下bootstrap网格系统是如何实现的。10.Nodejs懂nodejs吗?Express和koa有什么关系,有什么区别?nodejs适合做什么样的业务?nodejs和php、java有什么区别?Node.js中的Stream和Buffer有什么区别?如何解决node的异步问题?node是如何实现高并发的?说说Nodejs事件循环原理11.数据结构基本数据结构:(数组、队列、链表、堆、二叉树、哈希表等)8种排序算法、原理、适用场景及复杂度说的越多越好实现斐波那契数列的更好方法?12、性能优化CDN有什么用?什么时候用?浏览器页面优化?如何优化DOM操作的性能单页应用的SEO解决方案有哪些?首屏单页应用程序显示很慢,请问是什么原因?解决办法是什么?13、其他正则表达式前端渲染和后端渲染的优缺点数据库的四大特性,什么是原子性,表之间的关系你觉得前端系统应该是什么样的?需要启动一个静态资源,里面有各种资源依赖。如何顺利上网?如果让你实现一个前端模板引擎,你会怎么做?你知道流媒体查询吗?SEOmysql和mongoDB有什么区别?restful方法讲解数据库知识,操作系统知识click在ios上有300ms的延迟,原因及如何解决移动端的适配,rem+mediaquery/metaheader在移动端设置手势和事件;unicode、utf8、gbk编码、乱码的理解14.开放题你读过哪些书?你最近在读什么书?你用的是什么框架?你看过任何框架的代码吗?你学过设计模式吗?谈谈观察者模式!你能写下来吗?你最大的优点是什么?你最大的缺点是什么?除了写博客,你还有什么其他产出?现在你的领导给了你一份工作,让你一周内完成,但是你看了需求估计需要3周才能完成,怎么办?你平时关注的前端技术在规划职业项目的过程中有没有遇到什么问题?你是怎么解决的?最近在研究什么?请介绍一个你最热衷和擅长的专业领域,以及介绍的学习计划。请介绍一下你参与过的印象最深刻的项目,为什么?并介绍自己在项目中的角色和作用。15、为什么想在HR学前端?你平时是怎么学习前端的?输出是什么?你认为你最好的项目是什么?你能从你最敬佩的人身上学到什么?为什么你不像他们?与同事的哪些问题让你无法接受压力最大的事情是什么?你的朋友通常怎么说你?你喜欢什么样的工作氛围?你如何看待加班?你有什么客体意图吗?为什么这个城市的其他offer都接受你?你周末一般都做什么?未来职业规划2020.1.151.vue路由1.params只能通过name传入,query可以通过path传入2.params类似于post,query更类似于我们ajax中获取参数。简单来说,前者的参数不会在浏览器的地址栏显示,而后者会显示,所以传递params的值还是比较安全的。3、取值用法分别类似this.$route.params.name和this.$route.query.name。4.传递的值一刷新params就消失了,还有查询刷新传递的值。数据影响3.created和beformounted之间发生了什么Created:在模板渲染成html之前调用,也就是通常会初始化一些属性值,然后渲染成view。mounted:模板渲染成html后调用,一般是初始化页面完成后调用,然后在html的dom节点上进行一些需要的操作。4.parent和child之间的价值转移发生了什么?子组件通过props方法接受来自父组件的值,子组件通过$emit方法向父组件发送数据。5、Vue生命周期先Create先创建先Mount挂载先Update更新先Destroy销毁6.vue和react适用于哪些场景7.与ajax的区别是axios通过promise实现了一种ajax技术的封装,就像jQuery一样实现ajax封装。简单的说:ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装。axios是ajaxajax不仅仅是axios。8、vuex有哪几种属性?有五种类型,分别是State、Getter、Mutation、Action、Module9。什么是vue-loader?使用它有什么用处?用于解析.vue文件并将模板/js/样式转换为js模块的加载器。用途:js可以写es6,style可以是scss或less,template可以加jade等。10.active-class是哪个组件的属性?嵌套路由如何定义vue-router模块的router-link组件11、自定义指令的方法有哪些(v-check、v-focus)?它有哪些钩子函数?还有哪些钩子函数参数全局定义指令:vue对象的指令方法中有两个参数,一个是指令名,一个是函数。组件中定义的指令:directivesHook函数:bind(绑定事件触发)、inserted(插入节点时触发)、update(组件内相关更新)Hook函数参数:el、binding