Ⅰ 常见的web前端面试题及答案分享
1、 说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)
答:行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。兼容性:display:inline-block;*display:inline;*zoom:1。
2、box-sizing常用的属性有哪些?分别有什么作用?
答:box-sizing: content-box|border-box|inherit。content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。
border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
3、Doctype作用?标准模式与兼容模式各有什么区别?
答:告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
4、html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
答:HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。
(1)绘画 canvas;
(2)用于媒介回放的 video 和 audio 元素;
(3)本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
(4)sessionStorage 的数据在浏览器关闭后自动删除;
(5)语意化更好的内容元素,比如 article、footer、header、nav、section;
(6)表单控件,calendar、date、time、email、url、search;
(7)新的技术webworker, websocket, Geolocation;
IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。当然也可以直接使用成熟的框架、比如html5shim。
以上就是环球青藤小编关于web前端面试题的相关分享,希望对大家有所帮助,想要了解更多相关内容,请及时关注本平台并进行查看!
Ⅱ Web前端面试的常见面试题汇总
今天小编要跟大家分享的文章是关于参加Web前端面试的常见面试题汇总。准备参加Web前端面试的小伙伴们来和小编一起看一看吧,希望则宽本篇文章能够对大家有所帮助。1.渐进增强与优雅降级
渐进增强
并不是一种技术,而是一种设计思想。各个浏览器的渲染能力各不相同,要做一个每个人都能看到的网页、感受到的体验都一致的网站几乎不可能。但还是得网站的可访问性,保证用户在任何环境下都能正常访问网页得核心内容或能使用基本功能(避免网页打不开、排版错误等),并为他们提供当前条件下最好的体验,这就是渐进增强得核心思想。
优雅降级也是一种设计思想,为了保证在高版本浏览器中提供最好的体验,碰到低版本浏览器再降级进行兼容处理,使其能正常浏览。
这两种思想的区别在于:
1.渐进增强是向上兼容,优雅降级是向下兼容;
2.渐进增强是从简单到复杂,优雅降级是从复杂到简单;
3.渐进增强关注的是内容(保证核心内容),优雅降级关注的是浏览体验(为了兼容低版本浏览器)
2.DOCTYPE
作用
DTD(DocumentTypeDefinition,文档类型定义)是一系列的语法规则,用来定义XML或(X)HTML
的文档类型。浏览器会使用它来判断文档类型,决定何种协议来解析,以及切换浏览模式。
DOCTYPE是用来声明文档类型和DTD
规范的,一个主要的用途便是文件的合法性验证。如果文档代码不合法,那么浏览器解析时便会出现一些差错。
HTML5的文档类型声明:
HTML4.01Strict(HTML4.01严格模式)的DTD包含所有HTML
元素和属性,但不包括展示性的和弃用的元素(如font),它的文档类型声明:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
标准模式与怪异模式
怪异模式(Quirks
Mode)用于模拟旧浏览器的行为。早期的网站并不会遵循完整的规好卜范,随着浏览器支持越来越多的规范,在那些旧的浏览器中开发的页面在显示时会友盯穗被破坏。为了向后兼容,浏览器发明了怪异模式,一行错误或无效的
DOCTYPE都会触发怪异模式。
浏览器使用文件开头的DOCTYPE来决定用怪异模式处理或标准模式处理。DOCTYPE
可以确保不同浏览器以相同的方式解析文档,以及执行相同的渲染模式。
怪异模式与标准模式的主要区别:
1.怪异模式的宽度和高度会包含padding和border。标准模式不包含,标准模式下可以通过设置box-sizing:
border-box将标准盒模型转化成怪异模式下的盒模型。
2.怪异模式下,当内容超出容器高度时,会将容器拉伸,而不是溢出。
3.怪异模式下,在表格中的字体样式(如font-size)不会继承。
4.怪异模式下颜色值必须使用十六进制标记法。
3.语义化
HTML5
中的语义化就是让元素、属性或属性值有含义,更准确地标记特定类型的内容。对元素语义化的目的是为了让元素的语义和呈现分离,元素只负责文档内容的结构与含义,而CSS
样式控制内容的呈现,像元素,没有语义但却能将字体变粗,这类元素违背了语义化的目的,将会被废弃。
优点
·使得HTML文档结构清晰、布局合理、主体突出、可读性更强。
·有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
·方便其他设备解析,如盲人阅读器根据语义渲染网页。
·有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。
语义化标签
·
·footer内容的页脚,通常包含该章节作者、版权数据或者与文档相关的链接等信息;
·article
文档、页面、应用或网站中的独立结构,是可独立分配的、可复用的结构,如在发布中,它可能是论坛帖子、杂志或新闻文章、博客、用户提交的评论、交互式组件,或者其他独立的内容项目;
·nav描述一个含有多个超链接的区域,该区域包含跳转到其他页面或页面内部其他部分的链接列表;
·section表示文档中的一个区域(或节),比如,内容中的一个专题组;
·main定义文档的主要内容,该内容在文档中应当是独一无二的,不包含任何在文档中重复的内容,比如侧边栏,导航栏链接,版权信息,网站
logo,搜索框(搜索框作为文档的主要内容);
·aside
表示一个和其余页面内容几乎无关的部分,被认为是独立于该内容的一部分且可以被单独的拆分出来而不会影响整体。通常表现为侧边栏或嵌入内容。
4.超链接伪类
:link、:visited、:active和:hover的声明顺序是怎样的?
:link表示未访问的链接状态;
:visited表示已访问状态;:active表示激活状态(鼠标按下);:hover表示悬停状态。
推荐顺序是LVHA,即:link:visited:hover:active。理由如下:
·当鼠标悬停在未访问的链接上时,:link和:hover都会命中,如果:hover在:link
之前声明,那么(:hover)就会被覆盖;
·当鼠标悬停在已访问的连接上时,:visited和:hover都会命中,如果:hover在:visited
之前声明,那么(:hover)就会被覆盖;
·当鼠标单击链接时,:active和:hover都会命中,我们大多是想让:hover只在悬停时展示样式,按下鼠标时使用:active
样式,因此:active在:hover之后声明;
·综上,:hover应在:link和:visited之后,在:active之前,因此active在最后。而:link和
:visited两者的顺序无所谓,互不影响。
5.CSS常见的长度单位
CSS中除了px长度单位之外,还有下面几个长度单位:
·pc六分之一英寸,1pc=12pt=1/6*1in=16px;
·pt一磅,72分之一英寸。1pt=1/12_1pc=1/72_1in≈1.33px;
·in一英寸,1in=2.54cm=96px;
·ex在含有“X”字母的字体中,它是该字体的小写字母的高度。对于很多字体来说,1ex≈0.5em;
·em1em等于父级元素的字体大小,2em就是父级元素字体大小的二倍;
·rem当用在根元素()的font-size上面时,它代表了它的初始值;
·ch代表元素所用字体font中“0”这一字形的宽度;
·vh1vh相当于视口高度的1%,100vh就是视口的高度;
·vw1vw相当于视口宽度的1%,100vw就是视口的宽度;
·vmax视口高度vw和宽度vh两者中的最小值
·vmin视口高度vw和宽度vh两种中的最大值;
·%相对于父级元素的大小来确定;
参考:CSS
CSSpercentage[2]
6.事件对象
冒泡与捕获
事件冒泡与捕获是事件处理的两种机制,主要描述当在一个元素上有两个相同类型的事件处理器被激活会发生什么。
在点击子元素时,浏览器运行了两种不同的阶段:捕获阶段和冒泡阶段。捕获阶段的行为:
·浏览器检查元素的最外层祖先,是否在捕获阶段中注册了一个onclick事件处理程序,如果是,则运行它;
·
然后,它移动到中单击元素的下一个祖先元素,并执行相同的操作,然后是单击元素再下一个祖先元素,依此类推,直到到达实际点击的元素;
而冒泡与捕获恰恰相反:
·浏览器检查实际点击的元素是否在冒泡阶段中注册了一个onclick事件处理程序,如果是,则运行它;
·然后它移动到下一个直接的祖先元素,并做同样的事情,然后是下一个,等等,直到它到达元素;
而现代浏览器在默认情况下,所有事件处理程序都在冒泡阶段进行注册。因此上面代码在点击子元素时会先执行子元素绑定的事件,然后向上冒泡,触发父元素绑定的事件。
addEventListener函数的第三个参数是个布尔值。含义:
·当布尔值是false时(这也是默认值),表示向上冒泡触发事件;
·当布尔值是true时,表示向下捕获触发事件;
不能冒泡的事件
有些事件是不会冒泡的。比如:
·blur元素失去焦点时触发,focusout事件也是失去焦点时触发,但可以冒泡;
·focus元素获取焦点时触发;
·mouseenter鼠标移动到元素上时会触发该事件,与之对应的是mouseover事件,但会冒泡;
·mouseleave鼠标离开元素时触发,与之对应的是mouseout,但会冒泡;
事件冒泡可以让我们利用事件委托,尤其是处理大量子元素时,如果给每个子元素都绑定事件,这是不优雅的,可以将事件绑定到父元素上,并让子节点上发生的事件冒泡到父节点上,利用
e.target属性可以获取到当前触发事件的子元素。
事件对象中的方法
·stopPropagation()阻止事件冒泡,当设置后,点击该元素时父元素绑定的事件就不会再触发;
·preventDefault()阻止默认事件的发生;
·stopImmediatePropagation()它用来阻止监听同一事件的其他事件监听器被调用以及阻止事件冒泡,比如给同一个div
元素绑定多个click事件(使用addEventListener方法可以注册多个),当在第二个事件函数中调用
stopImmediatePropagation方法时,点击div元素时,后面注册的click将不会被触发,而且还会阻止事件冒泡;
比如下面的例子,给p绑定多个click事件,在第二个事件函数中调用stopImmediatePropagation,第三个click
事件就不会触发,因为也阻止了冒泡,因此父元素的click事件也不会触发。
paragraph
Ⅲ 前端面试项目会给图片吗
前端面试项目会给图片吗
全部
资讯
视频
文档
图片
一文分析前端面试中的图片懒加载问题,快来看看吧~
最近整理了一些前端高频面试题,分享给大家,如有问题欢迎留言指正,面试专栏我会长期更新,欢迎大家点赞、收藏,感谢!1.什么是_DOCTYPE_,有何作用?Doctype 是HTML5的文档声明,通过它可以...
百家号2022-11-28
前端实习生去面试需要什么作品-芝士回答
3.证明对新技术探索能力的,github里边应该有几个现有热门技术的项目。表示在寻找新技术解决方案的路上,一直保持着一颗敬畏之心,一颗虔诚的心,时刻保持学习或了解新事物的态度或激情。上个成...
芝士回答2021-03-25
初级前端面试需要带什么作品?芝士回答
我建议最后去找电商项目,电商项目中的前端特效要求的比较高,如果电商的可以消化,那么面试就不再是问题了;2、对于已经工作了一段时间的前端开发工程师来说,最好的就是将自己在工作中做过的...
芝士回答2021-01-09
其他人还搜了
前端面试项目素材
前端面试项目描述
面试介绍电商网站前端项目
前端面试问项目遇到的问题
前端面试开源项目
前端面试官要看上线项目怎么办
前端工作面试注意事项
作为一名HTML5前端工程师,为了工作,为了就业我们免不了要参加各种各样的面试。为此总结了面试前的注意事项: 第一:注意自己的仪容仪表 面试之前,一定要再次从头到脚地将自己的仪容仪表检查...
芝士回答
初级前端面试需要带什么作品?
回答:26浏览:24万+赞同:34
[最佳答案]千言万语浓缩成了一行URL。
知乎2016-03-27
【前端+面试问题|前端+面试技巧】看准网
面试的前端开发·北京 面试未通过 阿里影业一面 面试过程很愉快,面试官交流起来很舒服,下面的图片里是我记录的面试中的问题并附上答案,仅供参考。贡献于 2022-05-20 3 匿名用户 面试的前端...
看准网2022-05-20
前端应届生面试经验_韩哥、最强操盘手的博客-CSDN博客_前端应届生
2 年之内的小伙伴,大家酌情阅读~(更新:最后的面试题只是自己总结的一些偏基础的知识~刚毕业的小伙伴看着也不要有什么压力,不是代表初级前端必须掌握的技能,只是总结出前端面试中比较常见的...
CSDN技术社区2021-11-18
前端面试(1)—准备_乐夫天命兮的博客-CSDN博客_前端面试准备
每轮面试在一小时左右。概念:职位描述:注重的是工作职责。任职要求:要求的是工作能力。通常描述得很细致。PS:前端的知识庞大,不可能所有的内容都准备好,但是要向“任职要求”靠拢。分析...
CSDN技术社区
【前端开发/web前端设计面试|前端开发/web前端设计面试技巧】看准网
面试过程很愉快,面试官交流起来很舒服,下面的图片里是我记录的面试中的问题并附上答案,仅供参考。有用(3)|评论(0)|你还记得你曾经的面试情景吗?分享一条你的面试经历吧,...
看准网2022-06-11
web前端开发面试流程是怎样的?网络知道
回答:2
首先投简历,等待面试通知。第一次面试填资料,做测试题;等一面通过之后接着二面,二面一般是技术面试,有些公司是通过之后直接进行3面有些是改天再进行3面,3面一般就是项目经理或总经理问你一-些各种各样的问题,如果3面都过了,基本上就是面试成功了。但是不同公司的面试流程也不相同。...
网络知道2022-06-10
相关搜索
前端面试项目
前端面试题库
前端面试自我介绍
前端面试视频教程
前端面试题目
面试图片
前端性能优化面试
前端面试宝典
快速搞定前端面试
前端面试问项目中遇到的难题
11-20条
【截图】常见前端面试题_mus_木司的博客-CSDN博客
3.一道面向对象面试题 4.EventLoop 同步异步、宏任务微任务 5.使下面输出1 var a={ toString=function*(){ yield 1;yield 2;yield 3;} } a.toString 会转换,规则: 对象=字符串 对象.toString ...
CSDN技术社区2020-06-02
前端面试
前端面试自我介绍背景:1 面试官在你自我介绍的时候,才有时间看你的简历。人太多没时间看,看了也记不住。2 你在自我介绍中,他在想问你什么问题。3 了解你语言表达能力,自信气场,仪表形态。...
www.lwlwlw.com2017-07-04
前端面试作品-芝士回答
我建议最后去找电商项目,电商项目中的前端特效要求的比较高,如果电商的可以消化,那么面试就不再是问题了;2、对于已经工作了一段时间的前端开发工程师来说,最好的就是将自己在工作中做过的...
芝士回答2021-01-09
web前端经典面试题_约德尔蒙的博客-CSDN博客_前端面试题
阅读:8w+
web前端面试题 其他问题 1、请谈谈你对性能优化的认识?网页内容 减少http请求次数 80%的响应时间花在下载网页内容(images,stylesheets,javascripts,scripts,flash等)。减少请求次数是缩短响应...
CSDN技术社区
前端面试-项目流程_前端小兔子的博客-CSDN博客_前端面试流程
1、项目流程 (1)项目分多人、多角色参与 (2)项目分多阶段 (3)项目需要计划和执行 2、项目角色 (1)PM 产品经理 (2)UE 视觉设计师 (3)FE 前端开发 (4)RD 后端开发 (5)CRD 移动端...
CSDN技术社区2020-03-18
关于前端面试的十问十答(并附知识点思维导图)知乎
6.29 双越老师 在慕课网直播讲解了关于前端面试的一些技巧和经验,以下是同学的一些问题反馈和老师的解答 1、问题描述: 老师你好,我是计算机专业大二在校生,想了解前端需要重点掌握哪些算法呢...
知乎2019-07-04
Web前端初学者(应届生)面试攻略-知了乐了-博客园
前端技术日新月异,面试也有了不同的要求,各种框架层出不穷,到了你们那一年前端发展到了什么地步没有人知道,牢记法则,以不变应万变,绝对ok。明确一点,自己想去那种公司,大公司注重基础,...
博客园2018-02-26
前端面试(三)简书
前端面试(三) 一、图片整合 用background-position来实现背景图片的定位技术,又称为css精灵图。用法: 将一些小图片有规则的合成一张图片,即多张图片合为一张整图,再使用background-...
简书2019-10-20
前端面试要求-洺剑残虹-博客园
前端面试所遇到的技术点: HTML的问题 (1)行标签和块级标签分别有哪些?(2)常见HTML5的标签有哪些?(3)怎么页面结构会比较好?(4)如何减少HTTP请求和优化?减少请求的资源,将多个CSS资源打包到...
博客园2018-09-08
前端工程师面试汇总_尊哥的博客-CSDN博客_前端工程师面试
一、前端基础 1、HTTP,HTML,浏览器 说一下http和https tcp三次握手,一句话概括 TCP和UDP的区别 WebSocket的实现和应用 一个图片url访问后直接下载怎样实现?说一下web Quality(无障碍)几个很...
CSDN技术社区2020-01-28
相关搜索
前端面试项目
前端面试如何介绍自己的项目
前端面试
web前端面试
js前端面试
前端面试问题
2019前端面试
前端面试题库
前端电话面试
前端面试自我介绍
21-30条
前端面试-网络贴吧
小伙伴们,有很多小伙伴刚学完前端,想找一份好一点的公司去应聘,但是公司的面试又成了一大难题,今天我整理了一些关于web前端面试的试题,帮助大家可以更好的完成面试,早日找到工作。由于...
网络贴吧2020-01-25
前端面试流程_网络文库
前端面试流程 By漆黑小T 前面5个题,有两个答不出来就可以pass 遇到面试者反问,以时间有限为由,让其自行网络,面试印象减分 1、css问题,水平、垂直居中的写法,请至少写出4种?水平居中 行内...
网络文库
前端面试技巧-网络经验
前端面试技巧,马上就要进入前端面试的朋友们,对于前端面试的技巧还是比较模糊的,那么前端面试技巧都有哪些呢?
网络经验2019-12-03
前端面试到底要做到哪些?知乎
准备面试的时候,可以按照以下几个模块来准备: 无论前端技术栈日新月异,我们都得要扎实基础,脚踏实地,切记不可投机取巧、眼高手低。2.1 JavaScript 基础 JavaScript 基础非常重要,相比于...
知乎2021-07-29
常见的前端开发面试题(附答案)DreamTraveler-博客园
2.谈谈你对前端性能优化的理解 a.请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 c.缓存...
博客园2020-04-28
前端面试流程-漆黑小T-博客园
前端面试流程 By漆黑小T 前面5个题,有两个答不出来就可以pass 遇到面试者反问,以时间有限为由,让其自行网络,面试印象减分 1、css问题,水平、垂直居中的写法,请至少写出4种?水平居中 行内...
博客园2021-01-27
前端面试流程图-CSDN
csdn已为您找到关于前端面试流程图相关内容,包含前端面试流程图相关文档代码介绍、相关教程视频课程,以及相关前端面试流程图问答内容。为您解决当下相关问题,如果想了解更详细前端面试流程图...
CSDN技术社区2021-06-10
前端面试篇,应届生面试时被问项目经验不用慌,按这个步骤回答成功率高达95%_码民的飘柔的博客-CSDN博客
为了让大家在收到一家公司前端面试邀请之后,准备得更加充足,这里准备了一些高频和基础的前端面试题,希望可以帮助大家更加顺利完成求职,得到自己满意的offer。最全前端面试真题汇总 CSS面试...
CSDN技术社区2021-05-14
关于前端面试的注意事项-简书
前端现在越来越多人,那么面试的时候要注意哪些问题呢?1.简历一定要写的完善,多一些数据性的东西,项目业绩啊,项目效果之类的一定要写的好一点,这样面试官看到才能感觉到真实。2.简历上的...
简书2020-05-06
常见的前端开发面试题(附答案)
2.谈谈你对前端性能优化的理解 a.请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 c.缓存...
百家号2019-02-01
相关搜索
前端面试项目
前端面试如何介绍自己的项目
前端面试
web前端面试
js前端面试
前端面试问题
2019前端面试
前端面试题库
前端电话面试
前端面试自我介绍
31-40条
常见前端面试题及答案_冷小鱼的博客-CSDN博客_前端面试题
本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典、很有代表性。上面没有答案,我就整理了一下,从网上找了一些相关问题的答案。里面有一部分问题的答案我也没有...
CSDN技术社区2019-02-15
前端工作面试问题-前端开发博客
这段事件一直在整理有关前端的面试题目,整理这也题目,不只是为了能够学习应付即将到来的面试,更是为了补补基础知识。日常项目开发进度太快了,很多属性或者方法用了就忘,这样会造成另外一个...
m.caibaojian.com2017-04-06
前端面试之前要准备的那些事-祈澈姑娘-博客园
现在前端虽火但工作不好找,因为一些外力因素所导致,北上广这些大城市的招聘都是三年的工作经验起的。关于怎么写工作经验和工作项目,后续的文章里面会有更多的干货和经验。问题四,简历上常见...
博客园2017-10-26
如何面试前端工程师?
评论:1
近来几个月,一直在努力寻找前端战友,未果,一路的招聘经历下来,心生不少感慨,一直都很小心翼翼前端面试项目会给图片吗前端面试项目会给图片吗
全部
资讯
视频
文档
图片
一文分析前端面试中的图片懒加载问题,快来看看吧~
最近整理了一些前端高频面试题,分享给大家,如有问题欢迎留言指正,面试专栏我会长期更新,欢迎大家点赞、收藏,感谢!1.什么是_DOCTYPE_,有何作用?Doctype 是HTML5的文档声明,通过它可以...
百家号2022-11-28
前端实习生去面试需要什么作品-芝士回答
3.证明对新技术探索能力的,github里边应该有几个现有热门技术的项目。表示在寻找新技术解决方案的路上,一直保持着一颗敬畏之心,一颗虔诚的心,时刻保持学习或了解新事物的态度或激情。上个成...
芝士回答2021-03-25
初级前端面试需要带什么作品?芝士回答
我建议最后去找电商项目,电商项目中的前端特效要求的比较高,如果电商的可以消化,那么面试就不再是问题了;2、对于已经工作了一段时间的前端开发工程师来说,最好的就是将自己在工作中做过的...
芝士回答2021-01-09
其他人还搜了
前端面试项目素材
前端面试项目描述
面试介绍电商网站前端项目
前端面试问项目遇到的问题
前端面试开源项目
前端面试官要看上线项目怎么办
前端工作面试注意事项
作为一名HTML5前端工程师,为了工作,为了就业我们免不了要参加各种各样的面试。为此总结了面试前的注意事项: 第一:注意自己的仪容仪表 面试之前,一定要再次从头到脚地将自己的仪容仪表检查...
芝士回答
初级前端面试需要带什么作品?
回答:26浏览:24万+赞同:34
[最佳答案]千言万语浓缩成了一行URL。
知乎2016-03-27
【前端+面试问题|前端+面试技巧】看准网
面试的前端开发·北京 面试未通过 阿里影业一面 面试过程很愉快,面试官交流起来很舒服,下面的图片里是我记录的面试中的问题并附上答案,仅供参考。贡献于 2022-05-20 3 匿名用户 面试的前端...
看准网2022-05-20
前端应届生面试经验_韩哥、最强操盘手的博客-CSDN博客_前端应届生
2 年之内的小伙伴,大家酌情阅读~(更新:最后的面试题只是自己总结的一些偏基础的知识~刚毕业的小伙伴看着也不要有什么压力,不是代表初级前端必须掌握的技能,只是总结出前端面试中比较常见的...
CSDN技术社区2021-11-18
前端面试(1)—准备_乐夫天命兮的博客-CSDN博客_前端面试准备
每轮面试在一小时左右。概念:职位描述:注重的是工作职责。任职要求:要求的是工作能力。通常描述得很细致。PS:前端的知识庞大,不可能所有的内容都准备好,但是要向“任职要求”靠拢。分析...
CSDN技术社区
【前端开发/web前端设计面试|前端开发/web前端设计面试技巧】看准网
面试过程很愉快,面试官交流起来很舒服,下面的图片里是我记录的面试中的问题并附上答案,仅供参考。有用(3)|评论(0)|你还记得你曾经的面试情景吗?分享一条你的面试经历吧,...
看准网2022-06-11
web前端开发面试流程是怎样的?网络知道
回答:2
首先投简历,等待面试通知。第一次面试填资料,做测试题;等一面通过之后接着二面,二面一般是技术面试,有些公司是通过之后直接进行3面有些是改天再进行3面,3面一般就是项目经理或总经理问你一-些各种各样的问题,如果3面都过了,基本上就是面试成功了。但是不同公司的面试流程也不相同。...
网络知道2022-06-10
相关搜索
前端面试项目
前端面试题库
前端面试自我介绍
前端面试视频教程
前端面试题目
面试图片
前端性能优化面试
前端面试宝典
快速搞定前端面试
前端面试问项目中遇到的难题
11-20条
【截图】常见前端面试题_mus_木司的博客-CSDN博客
3.一道面向对象面试题 4.EventLoop 同步异步、宏任务微任务 5.使下面输出1 var a={ toString=function*(){ yield 1;yield 2;yield 3;} } a.toString 会转换,规则: 对象=字符串 对象.toString ...
CSDN技术社区2020-06-02
前端面试
前端面试自我介绍背景:1 面试官在你自我介绍的时候,才有时间看你的简历。人太多没时间看,看了也记不住。2 你在自我介绍中,他在想问你什么问题。3 了解你语言表达能力,自信气场,仪表形态。...
www.lwlwlw.com2017-07-04
前端面试作品-芝士回答
我建议最后去找电商项目,电商项目中的前端特效要求的比较高,如果电商的可以消化,那么面试就不再是问题了;2、对于已经工作了一段时间的前端开发工程师来说,最好的就是将自己在工作中做过的...
芝士回答2021-01-09
web前端经典面试题_约德尔蒙的博客-CSDN博客_前端面试题
阅读:8w+
web前端面试题 其他问题 1、请谈谈你对性能优化的认识?网页内容 减少http请求次数 80%的响应时间花在下载网页内容(images,stylesheets,javascripts,scripts,flash等)。减少请求次数是缩短响应...
CSDN技术社区
前端面试-项目流程_前端小兔子的博客-CSDN博客_前端面试流程
1、项目流程 (1)项目分多人、多角色参与 (2)项目分多阶段 (3)项目需要计划和执行 2、项目角色 (1)PM 产品经理 (2)UE 视觉设计师 (3)FE 前端开发 (4)RD 后端开发 (5)CRD 移动端...
CSDN技术社区2020-03-18
关于前端面试的十问十答(并附知识点思维导图)知乎
6.29 双越老师 在慕课网直播讲解了关于前端面试的一些技巧和经验,以下是同学的一些问题反馈和老师的解答 1、问题描述: 老师你好,我是计算机专业大二在校生,想了解前端需要重点掌握哪些算法呢...
知乎2019-07-04
Web前端初学者(应届生)面试攻略-知了乐了-博客园
前端技术日新月异,面试也有了不同的要求,各种框架层出不穷,到了你们那一年前端发展到了什么地步没有人知道,牢记法则,以不变应万变,绝对ok。明确一点,自己想去那种公司,大公司注重基础,...
博客园2018-02-26
前端面试(三)简书
前端面试(三) 一、图片整合 用background-position来实现背景图片的定位技术,又称为css精灵图。用法: 将一些小图片有规则的合成一张图片,即多张图片合为一张整图,再使用background-...
简书2019-10-20
前端面试要求-洺剑残虹-博客园
前端面试所遇到的技术点: HTML的问题 (1)行标签和块级标签分别有哪些?(2)常见HTML5的标签有哪些?(3)怎么页面结构会比较好?(4)如何减少HTTP请求和优化?减少请求的资源,将多个CSS资源打包到...
博客园2018-09-08
前端工程师面试汇总_尊哥的博客-CSDN博客_前端工程师面试
一、前端基础 1、HTTP,HTML,浏览器 说一下http和https tcp三次握手,一句话概括 TCP和UDP的区别 WebSocket的实现和应用 一个图片url访问后直接下载怎样实现?说一下web Quality(无障碍)几个很...
CSDN技术社区2020-01-28
相关搜索
前端面试项目
前端面试如何介绍自己的项目
前端面试
web前端面试
js前端面试
前端面试问题
2019前端面试
前端面试题库
前端电话面试
前端面试自我介绍
21-30条
前端面试-网络贴吧
小伙伴们,有很多小伙伴刚学完前端,想找一份好一点的公司去应聘,但是公司的面试又成了一大难题,今天我整理了一些关于web前端面试的试题,帮助大家可以更好的完成面试,早日找到工作。由于...
网络贴吧2020-01-25
前端面试流程_网络文库
前端面试流程 By漆黑小T 前面5个题,有两个答不出来就可以pass 遇到面试者反问,以时间有限为由,让其自行网络,面试印象减分 1、css问题,水平、垂直居中的写法,请至少写出4种?水平居中 行内...
网络文库
前端面试技巧-网络经验
前端面试技巧,马上就要进入前端面试的朋友们,对于前端面试的技巧还是比较模糊的,那么前端面试技巧都有哪些呢?
网络经验2019-12-03
前端面试到底要做到哪些?知乎
准备面试的时候,可以按照以下几个模块来准备: 无论前端技术栈日新月异,我们都得要扎实基础,脚踏实地,切记不可投机取巧、眼高手低。2.1 JavaScript 基础 JavaScript 基础非常重要,相比于...
知乎2021-07-29
常见的前端开发面试题(附答案)DreamTraveler-博客园
2.谈谈你对前端性能优化的理解 a.请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 c.缓存...
博客园2020-04-28
前端面试流程-漆黑小T-博客园
前端面试流程 By漆黑小T 前面5个题,有两个答不出来就可以pass 遇到面试者反问,以时间有限为由,让其自行网络,面试印象减分 1、css问题,水平、垂直居中的写法,请至少写出4种?水平居中 行内...
博客园2021-01-27
前端面试流程图-CSDN
csdn已为您找到关于前端面试流程图相关内容,包含前端面试流程图相关文档代码介绍、相关教程视频课程,以及相关前端面试流程图问答内容。为您解决当下相关问题,如果想了解更详细前端面试流程图...
CSDN技术社区2021-06-10
前端面试篇,应届生面试时被问项目经验不用慌,按这个步骤回答成功率高达95%_码民的飘柔的博客-CSDN博客
为了让大家在收到一家公司前端面试邀请之后,准备得更加充足,这里准备了一些高频和基础的前端面试题,希望可以帮助大家更加顺利完成求职,得到自己满意的offer。最全前端面试真题汇总 CSS面试...
CSDN技术社区2021-05-14
关于前端面试的注意事项-简书
前端现在越来越多人,那么面试的时候要注意哪些问题呢?1.简历一定要写的完善,多一些数据性的东西,项目业绩啊,项目效果之类的一定要写的好一点,这样面试官看到才能感觉到真实。2.简历上的...
简书2020-05-06
常见的前端开发面试题(附答案)
2.谈谈你对前端性能优化的理解 a.请求数量:合并脚本和样式表,CSS Sprites,拆分初始化负载,划分主域 b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 c.缓存...
百家号2019-02-01
相关搜索
前端面试项目
前端面试如何介绍自己的项目
前端面试
web前端面试
js前端面试
前端面试问题
2019前端面试
前端面试题库
前端电话面试
前端面试自我介绍
31-40条
常见前端面试题及答案_冷小鱼的博客-CSDN博客_前端面试题
本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典、很有代表性。上面没有答案,我就整理了一下,从网上找了一些相关问题的答案。里面有一部分问题的答案我也没有...
CSDN技术社区2019-02-15
前端工作面试问题-前端开发博客
这段事件一直在整理有关前端的面试题目,整理这也题目,不只是为了能够学习应付即将到来的面试,更是为了补补基础知识。日常项目开发进度太快了,很多属性或者方法用了就忘,这样会造成另外一个...
m.caibaojian.com2017-04-06
前端面试之前要准备的那些事-祈澈姑娘-博客园
现在前端虽火但工作不好找,因为一些外力因素所导致,北上广这些大城市的招聘都是三年的工作经验起的。关于怎么写工作经验和工作项目,后续的文章里面会有更多的干货和经验。问题四,简历上常见...
博客园2017-10-26
如何面试前端工程师?
评论:1
近来几个月,一直在努力寻找前端战友,未果,一路的招聘经历下来,心生不少感慨,一直都很小心翼翼前端面试项目会给图片吗
Ⅳ 前端经典面试题(包含JS、CSS、React、浏览器等)
防抖
节流
误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。
实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是来源与浏览器或web服务器,浏览器或web服务器限制了url的长度。为了明确这个概念,我们必须再次强调下面几点:
补充补充一个get和post在缓存方面的区别:
可从IIFE、AMD、CMD、CommonJS、UMD、webpack(require.ensure)、ES Mole、
vue和react都是采用diff算法来对比新旧虚拟节点,从而更新节点。在vue的diff函数中(建议先了解一下diff算法过程)。在交叉对比中,当新节点跟旧节点 头尾交叉对比 没有结果时,会根据新节点的key去对比旧节点数组中的key,从而找到相应旧节点(这里对应的是一个key => index 的map映射)。如果没找到就认为是一个新增节点。而如果没有key,那么就会采用遍历查找的方式去找到对应的旧节点。一种一个map映射,另一种是遍历查找。相比而言。map映射的速度更快。vue部分源码如下:
创建map函数
遍历寻找
在React中, 如果是由React引发的事件处理(比如通过onClick引发的事件处理),调用setState不会同步更新this.state,除此之外的setState调用会同步执行this.state 。所谓“除此之外”,指的是绕过React通过addEventListener直接添加的事件处理函数,还有通过setTimeout/setInterval产生的异步调用。
**原因:**在React的setState函数实现中,会根据一个变量isBatchingUpdates判断是直接更新this.state还是放到队列中回头再说,而isBatchingUpdates默认是false,也就表示setState会同步更新this.state,但是, 有一个函数batchedUpdates,这个函数会把isBatchingUpdates修改为true,而当React在调用事件处理函数之前就会调用这个batchedUpdates,造成的后果,就是由React控制的事件处理过程setState不会同步更新this.state 。
虚拟dom相当于在js和真实dom中间加了一个缓存,利用dom diff算法避免了没有必要的dom操作,从而提高性能。
具体实现步骤如下:
用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中
当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异
把2所记录的差异应用到步骤1所构建的真正的DOM树上,视图就更新了。
结构:display:none: 会让元素完全从渲染树中消失,渲染的时候不占据任何空间, 不能点击, visibility: hidden:不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,不能点击 opacity: 0: 不会让元素从渲染树消失,渲染元素继续占据空间,只是内容不可见,可以点击
继承:display: none:是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示。visibility: hidden:是继承属性,子孙节点消失由于继承了hidden,通过设置visibility: visible;可以让子孙节点显式。
性能:displaynone : 修改元素会造成文档回流,读屏器不会读取display: none元素内容,性能消耗较大 visibility:hidden: 修改元素只会造成本元素的重绘,性能消耗较少读屏器读取visibility: hidden元素内容 opacity: 0 :修改元素会造成重绘,性能消耗较少
联系:它们都能让元素不可见
常用的一般为三种 .clearfix , clear:both , overflow:hidden ;
比较好是 .clearfix ,伪元素万金油版本,后两者有局限性.
clear:both :若是用在同一个容器内相邻元素上,那是贼好的,有时候在容器外就有些问题了, 比如相邻容器的包裹层元素塌陷
overflow:hidden :这种若是用在同个容器内,可以形成 BFC 避免浮动造成的元素塌陷
概念:将多个小图片拼接到一个图片中。通过 background-position 和元素尺寸调节需要显示的背景图案。
优点:
缺点:
block 元素特点:
1.处于常规流中时,如果 width 没有设置,会自动填充满父容器 2.可以应用 margin/padding 3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素 4.处于常规流中时布局时在前后元素位置之间(独占一个水平空间) 5.忽略 vertical-align
inline 元素特点
1.水平方向上根据 direction 依次布局
2.不会在元素前后进行换行
3.受 white-space 控制
4. margin/padding 在竖直方向上无效,水平方向上有效
5. width/height 属性对非替换行内元素无效,宽度由元素内容决定
6.非替换行内元素的行框高由 line-height 确定,替换行内元素的行框高由 height , margin , padding , border 决定 7.浮动或绝对定位时会转换为 block 8. vertical-align 属性生效
GIF :
JPEG :
PNG :
七种数据类型
(ES6之前)其中5种为基本类型: string , number , boolean , null , undefined ,
ES6出来的 Symbol 也是原始数据类型 ,表示独一无二的值
Object 为引用类型(范围挺大),也包括数组、函数,
输出结果是:
工厂模式
简单的工厂模式可以理解为解决多个相似的问题;
单例模式
只能被实例化(构造函数给实例添加属性与方法)一次
沙箱模式
将一些函数放到自执行函数里面,但要用闭包暴露接口,用变量接收暴露的接口,再调用里面的值,否则无法使用里面的值
发布者订阅模式
就例如如我们关注了某一个公众号,然后他对应的有新的消息就会给你推送,
代码实现逻辑是用数组存贮订阅者, 发布者回调函数里面通知的方式是遍历订阅者数组,并将发布者内容传入订阅者数组
1.字面量
2.Object构造函数创建
3.使用工厂模式创建对象
4.使用构造函数创建对象
HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。
什么是事件流:事件流描述的是从页面中接收事件的顺序,DOM2级事件流包括下面几个阶段。
addEventListener : addEventListener 是DOM2 级事件新增的指定事件处理程序的操作,这个方法接收3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最后这个布尔值参数如果是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。
IE只支持事件冒泡 。
获取一个对象的原型,在chrome中可以通过__proto__的形式,或者在ES6中可以通过Object.getPrototypeOf的形式。
那么Function.proto是什么么?也就是说Function由什么对象继承而来,我们来做如下判别。
我们发现Function的原型也是Function。
我们用图可以来明确这个关系:
这里来举个栗子,以 Object 为例,我们常用的 Object 便是一个构造函数,因此我们可以通过它构建实例。
则此时, 实例为instance , 构造函数为Object ,我们知道,构造函数拥有一个 prototype 的属性指向原型,因此原型为:
这里我们可以来看出三者的关系:
在 JS 中,继承通常指的便是 原型链继承 ,也就是通过指定原型,并可以通过原型链继承原型上的属性或者方法。
在函数式编程中,函数是一等公民。那么函数柯里化是怎样的呢?
函数柯里化指的是将能够接收多个参数的函数转化为接收单一参数的函数,并且返回接收余下参数且返回结果的新函数的技术。
函数柯里化的主要作用和特点就是参数复用、提前返回和延迟执行。
在一个函数中,首先填充几个参数,然后再返回一个新的函数的技术,称为函数的柯里化。通常可用于在不侵入函数的前提下,为函数 预置通用参数 ,供多次重复调用。
call 和 apply 都是为了解决改变 this 的指向。作用都是相同的,只是传参的方式不同。
除了第一个参数外, call 可以接收一个参数列表, apply 只接受一个参数数组。
bind 和其他两个方法作用也是一致的,只是该方法会返回一个函数。并且我们可以通过 bind 实现柯里化。
如何实现一个 bind 函数
对于实现以下几个函数,可以从几个方面思考
如何实现一个call函数
如何实现一个apply函数
箭头函数其实是没有 this 的,这个函数中的 this 只取决于他外面的第一个不是箭头函数的函数的 this 。在这个例子中,因为调用 a 符合前面代码中的第一个情况,所以 this 是 window 。并且 this 一旦绑定了上下文,就不会被任何代码改变。
在函数中,我们首先使用 var 关键字声明了 name 变量。这意味着变量在创建阶段会被提升( JavaScript 会在创建变量创建阶段为其分配内存空间),默认值为 undefined ,直到我们实际执行到使用该变量的行。我们还没有为 name 变量赋值,所以它仍然保持 undefined 的值。
使用 let 关键字(和 const )声明的变量也会存在变量提升,但与 var 不同,初始化没有被提升。在我们声明(初始化)它们之前,它们是不可访问的。这被称为“暂时死区”。当我们在声明变量之前尝试访问变量时, JavaScript 会抛出一个 ReferenceError 。
关于 let 的是否存在变量提升,我们何以用下面的例子来验证:
let 变量如果不存在变量提升, console.log(name) 就会输出 ConardLi ,结果却抛出了 ReferenceError ,那么这很好的说明了, let 也存在变量提升,但是它存在一个“暂时死区”,在变量未初始化或赋值前不允许访问。
变量的赋值可以分为三个阶段:
关于 let 、 var 和 function :
依次输出:undefined -> 10 -> 20
答案: D
colorChange 方法是静态的。静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。由于 freddie 是一个子级对象,函数不会传递,所以在 freddie 实例上不存在 freddie 方法:抛出 TypeError 。
1.使用第一次push,obj对象的push方法设置 obj[2]=1;obj.length+=1 2.使用第二次push,obj对象的push方法设置 obj[3]=2;obj.length+=1 3.使用console.log输出的时候,因为obj具有 length 属性和 splice 方法,故将其作为数组进行打印 4.打印时因为数组未设置下标为 0 1 处的值,故打印为empty,主动 obj[0] 获取为 undefined
undefined {n:2}
首先,a和b同时引用了{n:2}对象,接着执行到a.x = a = {n:2}语句,尽管赋值是从右到左的没错,但是.的优先级比=要高,所以这里首先执行a.x,相当于为a(或者b)所指向的{n:1}对象新增了一个属性x,即此时对象将变为{n:1;x:undefined}。之后按正常情况,从右到左进行赋值,此时执行a ={n:2}的时候,a的引用改变,指向了新对象{n:2},而b依然指向的是旧对象。之后执行a.x = {n:2}的时候,并不会重新解析一遍a,而是沿用最初解析a.x时候的a,也即旧对象,故此时旧对象的x的值为{n:2},旧对象为 {n:1;x:{n:2}},它被b引用着。后面输出a.x的时候,又要解析a了,此时的a是指向新对象的a,而这个新对象是没有x属性的,故访问时输出undefined;而访问b.x的时候,将输出旧对象的x的值,即{n:2}。
在比较相等性,原始类型通过它们的值进行比较,而对象通过它们的引用进行比较。 JavaScript 检查对象是否具有对内存中相同位置的引用。
我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。
这就是为什么 { age: 18 } === { age: 18 } 和 { age: 18 } == { age: 18 } 返回 false 的原因。
所有对象键(不包括 Symbols )都会被存储为字符串,即使你没有给定字符串类型的键。这就是为什么 obj.hasOwnProperty(Ƈ') 也返回 true 。
上面的说法不适用于 Set 。在我们的 Set 中没有 “1” : set.has(Ƈ') 返回 false 。它有数字类型 1 , set.has(1) 返回 true 。
这题考察的是对象的键名的转换。
catch 块接收参数 x 。当我们传递参数时,这与变量的 x 不同。这个变量 x 是属于 catch 作用域的。
之后,我们将这个块级作用域的变量设置为 1 ,并设置变量 y 的值。现在,我们打印块级作用域的变量 x ,它等于 1 。
在 catch 块之外, x 仍然是 undefined ,而 y 是 2 。当我们想在 catch 块之外的 console.log(x) 时,它返回 undefined ,而 y 返回 2 。
Ⅳ Web前端企业面试题
答:
一、display和visibility的相同与不同点
1、相同点:display和visibility都有讲元素隐藏的意思
2、不同点:display是元素隐藏,隐藏的元素不占文档流
而visibility隐藏的元素仍然占文档流
二、display和visibility的属性值
1、display
2、visibility
答:
在开发过程中经常需要循环遍历数组或者对象,使用最多的方法 forEach、for…in 、 for…of ,整理一下他们的异同点
for循环
其实除了这三种方法以外还有一种最原始的遍历,自Javascript诞生起就一直用的 就是for循环,它用来遍历数组
for循环中可以使用return、break等来中断循环
结果:
forEach
对数组的每一个元素执行一次提供的函数(不能使用return、break等中断循环),不改变原数组,无返回值undefined。
输出结果:
for…in
循环遍历的值都是数据结构的键值
总结一句: for in也可以循环数组但是特别适合遍历对象
结果:
for…of
它是ES6中新增加的语法,用来循环获取一对键值对中的值
循环一个数组
循环一个普通对象(报错)
答:
px:像素(Pixel),相对长度单位。像素px是相对于显示器屏幕分辨率而言的 。--即分辨率不同的机型当前对应的距离可能发生变化。(1Inches=xPx)。
所以相对于同一机型来说是一个绝对的长度单位。
em:是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸 。
以其父级元素为基准来变化长度。所以其算法不是一个固定的值。
rem:是CSS3新增的一个相对单位(root em,根em) 。
那么其好用在用可以直接设置HTML的font-size,然后在其子类都是以这个大小为基准变化的值。
在移动设备上,我们常常设置
此方式的目的是为了将当前屏幕(PC)分辨率的px转化成手机端的px,让px在手机上能够兼容此方式。
因此,此时看见的12px与PC端的12px无异。但是,如果不写着个meta的话,那么,浏览器会一直以PC的视图来决定手机端的px的大小,让视图看起来变小了很多。
那么,响应式页面则经常配合媒体查询media 来设置不同分辨率下手机的各种不同的配置机构,然后根据父级来变化所有的相对长度。
基础篇
1.shift
// 删除原数组的第一项,并返回删除元素的值,如果数组为空则返回undefined
2.unshift
// 将参数添加到原数组开头,并返回数组的长度
//注:此方法在ie6.0下
// 测试的返回值始终为undefined,在firefox下测试的返回值为7,所以此方法不可靠
// 一般需要用返回值时可用splice代替
3.pop
// 删除原数组的最后一项,并返回删除元素的值;如果数组为空则返回undefined
4.push
// 将参数添加到原数组末尾,并返回数组的长度
5.concat
// 返回一个新数组,是将参数添加到原数组中构成的
6.splice
7.reverse
8.sort(orderfunction)
9.slice(start,end)
10.join(separator)
11.indexOf
12.lastIndexOf
13. Array.isArray()
14. Array.toString()
进阶篇
1.forEach
是最为常用的情景,它至于遍历,可以在获取当前数据项的前提下,对数据进行修改。它没有返回值。理解起来也是最容易的。
2.map
map的本意就是映射,也就是将一个值从一种形式映射到另一种形式,比如将key映射到value。它的每一次遍历都会有一个返回值。这些返回值组合成最终的结果数组。事实就是如此
forEach和map对比
相同点
1)都是循环遍历数组中的每一项;
2)forEach()和map()匿名函数的参数相同,参数分别是item(当前每一项)、index(索引值)、arr(原数组);
3)this都是指向调用方法的数组;
4) 只能遍历数组;
不相同点
1)map()创建了新数组,不改变原数组;forEach()可以改变原数组。
2)遇到空缺的时候map()虽然会跳过,但保留空缺;forEach()遍历时跳过空缺,不保留空缺。
3)map()按照原始数组元素顺序依次处理元素;forEach()遍历数组的每个元素,将元素传给回调函数。
3.filter
它致力于从已有的数组中筛选出符合一定条件的数据项,最后的返回值是所有符合条件的数据项构成的数组。它不会修改原来的数组。记住,它的立足点就是筛选。也仅仅是筛选。还有一点需要注意:每一次遍历都会有一个返回值,它的类型是布尔类型。返回值只有是true,当前遍历项才会被筛选中。不要试图在filter中去修改原始数组。
理解: 就是在一堆数据里面去筛选你需要的数据 或者 剔除你不需要的数据
4.find()
返回通过测试的数组的第一个元素的值,
理解:假如你去一个一群人的地方去找人 你说我找xxb 他要是在那里就找到 不在那里就是undefined
在第一次调用 callback 函数时会确定元素的索引范围,因此在 find 方法开始执行之后添加到数组的新元素将不会被 callback 函数访问到。如果数组中一个尚未被callback函数访问到的元素的值被callback函数所改变,那么当callback函数访问到它时,它的值是将是根据它在数组中的索引所访问到的当前值。被删除的元素仍旧会被访问到。
语法
array.find(function(value, index, arr),thisValue)
value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值
返回值:返回符合测试条件的第一个数组元素的值,如果没有符合条件的则返回undefined。
扩展: findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。自己try吧
5.every
理解: 这个就像 上课了 老师说 昨天布置的作业 只要有一个人没有写完 今天就不讲课 然后挨个检查 当检查到有一个没有写完的时候 就不检查了 返回 不讲课了(false)
6.some
理解: 相当于在一个数组里面找你想要的那个数 找到了 就返回true 找不到就返回false
7.rece
它这个方法是接收一个函数作为累加器,将数组中的值(从左向右)开始合并,最总为一个值 然后返回出来,callback
他可以传四个参数:
1,previousValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)
2,currentValue:数组中当前被处理的元素
3,index:不啰嗦,自己顾名思义去吧
4,array:返回调用rece的数组
彩蛋: 这里附上前几天某某人比较喜欢的切割字符串的方法
substring() 和 substr()
相同点: 如果只是写一个参数,两者的作用都一样:都是是截取字符串从当前下标以后直到字符串最后的字符串片段。
不同点: 第二个参数
substr(startIndex, lenth) // 第二个参数是截取字符串的长度(从起始点截取某个长度的字符串);
substring(startIndex, endIndex) // 第二个参数是截取字符串最终的下标 (截取2个位置之间的字符串,‘含头不含尾')。
1:在使用vue框架的过程中,我们经常需要给一些数据做一些初始化处理,这时候我们常用的就是在created与mounted选项中作出处理。
首先来看下官方解释,官方解释说created是在实例创建完成后呗立即调用。在这一步,实例已完成以下配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
这话的意思我觉得重点在于说挂架阶段还没开始,什么叫还没开始挂载,也就是说,模板还没有被渲染成html,也就是这时候通过id什么的去查找页面元素是找不到的。下面看下实例来证明。
所以,一般creadted钩子函数主要是用来初始化数据。
2:mounted钩子函数一般是用来向后端发起请求拿到数据以后做一些业务处理。官方解释如下:
el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
这意思是该钩子函数是在挂在完成以后也就是模板渲染完成以后才会被调用。下面看实例
下面是结果
nihao
取到了值,这说明这时候vue模板已经渲染完毕。因此,Dom操作一般是在mounted钩子函数中进行的
computed:{} 计算属性,什么是计算属性呢,我个人理解就是对数据进行一定的操作,可以包含逻辑处理操作,对计算属性中的数据进行监控。计算属性是基于它的以来进行更新的,只有在相关依赖发生改变时侧能更新变化,以函数的形式返回结果。然后可以像绑定普通属性一样在模板中绑定计算属性。
总结:
通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。
methods:{}中的方法都需要主动去触发,比如点击click之类的
而created(){}、mounted(){}、里面的代码都是自动去执行的,即vue生命周期到了哪一步就直接去执行对应钩子函数里面的代码了,无需手动去执行
created中主要放初始化获取数据之类,mounted()中挂载到具体的DOM节点
computed:{} 计算属性,什么是计算属性呢,我个人理解就是对数据进行一定的操作,可以包含逻辑处理操作,对计算属性中的数据进行监控。计算属性是基于它的以来进行更新的,只有在相关依赖发生改变时侧能更新变化,以函数的形式返回结果。然后可以像绑定普通属性一样在模板中绑定计算属性。
mounted 是生命周期钩子,vue的生命周期中一个实例的mounted只会运行一次。mounted在vue的渲染模板挂载到$el元素上才会调用,很显然你export的时候el都么有自然不会运行mounted钩子函数了。
所有的方法都应该在methods里定义,然后在created或者mounted里 使用this调用方法,用这种方式实现初始化
6、Vue中组件之间的传参方式有哪些方式?
Vue 组件传参的八种方式总结
Vue 组件的使用不管是在平常工作还是在面试面试中,都是频繁出现的。因此系统的梳理一下组件之间的传参还是非常有必要的
一、props 传参
子组件定义 props 有三种方式:
// 第一种数组方式
// 第二种对象方式
// 第三种对象嵌套对象方式
第三种对象默认支持 4 种属性,并且都是非必填的。可以随意使用
父组件传参的俩种方式
第一种静态属性传参
注意:
1、在不定义 props 类型的情况下 props 接受到的均为 String。
2、当 props 属性指定为 Boolean 时,并且只有属性 key 没有值 value 时接受到的是 true
第二种动态属性传参
注意:
1、需要区分非简写形式传入的值是对象,则会对应 props 中多个值
2、会保留传入值的类型
3、如果是表达式则获取到的是表达式的计算结果
二、attrs 和listeners
$attrs
$attrs 会获取到 props 中未定义的属性(class 和 style 属性除外),支持响应式。常用的场景有俩种:
组件嵌套组件时可以使用 $attrs 来支持过多的属性支持。比如 elementUI 的 table 组件。支持的属性十几个,而平常封装的时候用的最多的也就一俩个。
属性默认是添加在父组件上的,有时候想把多余的属性添加在子组件上(可以结合 inheritAttrs: false 属性,让父属性不接受多余的属性)
$listeners 定义的事件都在子组件的根元素上,有时候想加到其他元素上。就可以使用 $listerners。它包含了父组件中的事件监听器(除了带有 .native 修饰符的监听器)
三、$emit 通知
这里有一道考题: for 循环的时候如何拿到子组件的传值和 for 中循环的值
答案有俩种,一是 $event, 二是 闭包。只是需要注意 $event 只能获取到第一个值
四、v-model
这个其实是一种通过 emit,on 的组合方式。优点再于同步值方便,写法优雅。下面三种写法其实是一个意思
五、插槽
六、$refs, $root, $parent, $children
$root 获取根组件
$parent 获取父组件
$children 获取子组件(所有的子组件,不保证顺序)
$refs 组件获取组件实例,元素获取元素
七、project / inject
注意:注入的值是非响应的
八、Vuex
这个相当于单独维护的一组数据,就不过多的说了。
watch,computed和methods的关系
1.watch和computed都是以Vue的依赖追踪机制为基础的 ,它们都试图处理这样一件事情:当某一个数据(称它为依赖数据)发生变化的时候,所有依赖这个数据的“相关”数据“自动”发生变化,也就是自动调用相关的函数去实现数据的变动。
2.对methods:methods里面是用来定义函数的,很显然,它需要手动调用才能执行。而不像watch和computed那样,“自动执行”预先定义的函数
watch和computed各自处理的数据关系场景不同
1. watch 擅长处理的场景: 一个数据影响多个数据
2. computed 擅长处理的场景: 一个数据受多个数据影响
watch用法 监听下记haiZeiTuan_Name的值,会改变其他所有的值
结果:this.suoLong会变为 '橡胶海贼团索隆',以此类推
computed用法 监听下记firstName,secName,thirdName的值,会改变luFei_Name的值
methods和computed的区别例子
注意两次点击computed返回的时间是相同的!!
1.两次点击methods返回的时间是不同的
2.注意两次点击computed返回的时间是相同的
【注意】为什么两次点击computed返回的时间是相同的呢?new Date()不是依赖型数据 (不是放在data等对象下的实例数据) ,所以computed只提供了缓存的值,而没有重新计算
只有符合:1.存在依赖型数据 2.依赖型数据发生改变这两个条件 ,computed才会重新计算。
参考:http://www.cnblogs.com/penghuwan/p/7194133.html
答:https://codecat.blog.csdn.net/article/details/100031285
1、Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大,简单地说,Promise好比容器,里面存放着一些未来才会执行完毕(异步)的事件的结果,而这些结果一旦生成是无法改变的
2、async await
async await也是异步编程的一种解决方案,他遵循的是Generator 函数的语法糖,他拥有内置执行器,不需要额外的调用直接会自动执行并输出结果,它返回的是一个Promise对象。
两者的主要用法、语法就不赘述了,感兴趣的同学可以自行查阅 es6中文文档
两者的区别
1、Promise的出现解决了传统callback函数导致的“地域回调”问题,但它的语法导致了它向纵向发展行成了一个回调链,遇到复杂的业务场景,这样的语法显然也是不美观的。而async await代码看起来会简洁些,使得异步代码看起来像同步代码,await的本质是可以提供等同于”同步效果“的等待异步返回能力的语法糖,只有这一句代码执行完,才会执行下一句。
2、async await与Promise一样,是非阻塞的。
3、async await是基于Promise实现的,可以说是改良版的Promise,它不能用于普通的回调函数。
简单来看,这两者除了语法糖不一样外,他们解决的问题、达到的效果是大同小异的,我们可以在不同的应用场景,根据自己的喜好来选择使用。
Ⅵ Web前端5道面试题
1.请说明ECMAScript,JavaScript,Jscript之间的关系?
ECMAScript提供脚本语言必须遵守的规则、
细节和准则,是脚本语言的规范。
比如:ES5,ES6就是具体的一js版本。
JavaScript是ECMAScript的一个分支版本,
JavaScript实现了多数ECMA-262中
描述的ECMAScript规范,但存在少数差异。
JScript是微软公司对ECMA-262语言规范的
一种实现,除了少数例外(这是为了保持向后兼容),
微软公司宣称JScript完全实现了ECMA标准.
关系:
JavaScript和JScript都是ECMAScript的版本分支,
二者在语法上没有多大的区别;
只不过一个是NetScape公司的,一个是微软的;
IE系列默认是JScript,其它的则反之用JavaScript。
2.页面加载过程中可能触发哪些事件?它们的顺序是?
页面加载时,大致可以分为以下几个步骤:1)开始解析HTML文档结构2)加载外部样式表及JavaScript脚本3)解析执行JavaScript脚本4)DOM树渲染完成5)加载未完成的外部资源6)页面加载成功
执行顺序:1)documentreadystatechange事件2)documentDOMContentLoaded事件3)windowload事件
3.函数中在声明变量a前使用a会产生错误吗?为什么?
不会,JS中能够进行变量作用域提升,
把所有变量、函数的声明提升到当前
作用域的最前面,但不进行赋值操作;
所以可能造成获取的值是undefined。
4.什么是hash,以及hashchange事件?
先了解下什么是hash:hash即URL中"#"字符后面的部分。
a)使用浏览器访问网页时,
如果网页URL中带有hash,
页面就会定位到id(或name)
与hash值一样的元素的位置;
b)hash还有另一个特点,
它的改变不会导致页面重新加载如橡尺;
c)hash值浏如清览器是不会随请求发送到服务器端的;
d)通过window.location.hash属性获取和设置hash值。
window.location.hash值的变化会直渣高接
反应到浏览器地址栏(#后面的部分会发生变化),同时,浏览器地址栏hash值的变化也会触发
window.location.hash值的变化,
从而触发onhashchange事件。
再来了解下什么是hashchange事件:
a)当URL的片段标识符更改时,
将触发hashchange事件(跟在#符号后面的URL部分,包括#符号)b)
hashchange事件触发时,
事件对象会有hash改变前的URL(oldURL)和hash改变后的URL(newURL)两个属性。
5.什么是CDN,CDN对于网站有什么意义,它有什么样的缺点?
CDN又称为内容分发网络;本意在于
尽可能避开互联网上有可能影响数据
传输速度和稳定性的瓶颈和环节,
使内容传输的更快、更稳定。
主要目的:
解决因分布、带宽、服务器性能带来的访问延迟问题,
适用于站点加速、点播、直播等场景。
使用户可就近取得所需内容,解决Internet网络拥挤的状况,
提高用户访问网站的响应速度和成功率。
缺点:
a)实施复杂,投资大;
b)目前大部分的CDN还只是对静态内容加速,
对动态加速效果不好;
而双线对动态加速的效果跟静态是一样的。
Ⅶ 前端面试题分享之什么是Spring
Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,
它主要是为了解决企业应用开发的复杂性而诞生的:
目的:解决企业级应用开发的复杂性。
功能:使用基本的JavaBean代替EJB。
范围:任何Java应用。
Spring的存在是因为它自身的得天独厚的优势:
它定位的领域是许多其他流行的framework没有的。
Spring是全面的和模块化的。
它的设计从底部帮助你编写易于测试的代码。
Spring是潜在一站式解决方案。
Spring天生就存在如下的有点:
低侵入式设计,代码污染极低。
Write Once,Run Anywhere
DI有效的降低了耦合度。
AOP提供了通用的任务的集中管理。
ORM和DAO简化了对数据库的访问。
高度开放性,并不强制(贯穿于变现层,业务层,持久层)
Spring的优点给开发带来的好处:
可以有效组织中间层对象。
使用同一的配置文件。
促进良好的编程习惯,减少编程代价。
易于单元测试。(一Spring基本组就是JavaBean,二提供了对Juit的支持)
使EJB成为一种备选。
为数据存取提供了一致性的框架。
Ⅷ Web前端岗位面试题有哪些
前端面试题汇总,基本上会有四大类问题,具体如下:
一、HTML
1、Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
2、HTML5 为什么只需要写 <!DOCTYPE HTML>?
3、行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
4、页面导入样式时,使用link和@import有什么区别?
5、介绍一下你对浏览器内核的理解?
6、常见的浏览器内核有哪些?
7、html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?
8、简述一下你对HTML语义化的理解?
9、HTML5的离线储存怎么使用,工作原理能不能解释一下?
10、浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?
11、请描述一下 cookies,sessionStorage 和 localStorage 的区别?
12、iframe有那些缺点?
13、Label的作用是什么?是怎么用的?(加 for 或 包裹)
14、HTML5的form如何关闭自动完成功能?
15、如何实现浏览器内多个标签页之间的通信? (阿里)
16、webSocket如何兼容低浏览器?(阿里)
17、页面可见性(Page Visibility)API 可以有哪些用途?
18、如何在页面上实现一个圆形的可点击区域?
19、实现不使用 border 画出1px高的线,在不同浏览器的Quirksmode和CSSCompat模式下都能保持同一效果。
20、网页验证码是干嘛的,是为了解决什么安全问题?
21、tite与h1的区别、b与strong的区别、i与em的区别?
二、css
1、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?
2、CSS选择符有哪些?哪些属性可以继承?
3、CSS优先级算法如何计算?
4、CSS3新增伪类有那些?
5、如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?
6、display有哪些值?说明他们的作用。
7、position的值relative和absolute定位原点是?
8、CSS3有哪些新特性?
9、请解释一下CSS3的Flexbox(弹性盒布局模型),以及适用场景?
10、用纯CSS创建一个三角形的原理是什么?
11、一个满屏 品 字布局 如何设计?
三、常见兼容性问题?
1、li与li之间有看不见的空白间隔是什么原因引起的?有什么解决办法?
2、经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
3、为什么要初始化CSS样式。
4、absolute的containing block计算方式跟正常流有什么不同?
5、CSS里的visibility属性有个collapse属性值是干嘛用的?在不同浏览器下以后什么区别?
6、position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
7、对BFC规范(块级格式化上下文:block formatting context)的理解?
8、CSS权重优先级是如何计算的?
9、请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式
10、移动端的布局用过媒体查询吗?
11、使用 CSS 预处理器吗?喜欢那个?
12、CSS优化、提高性能的方法有哪些?
13、浏览器是怎样解析CSS选择器的?
14、在网页中的应该使用奇数还是偶数的字体?为什么呢?
15、margin和padding分别适合什么场景使用?
16、抽离样式模块怎么写,说出思路,有无实践经验?[阿里航旅的面试题]
17、元素竖向的百分比设定是相对于容器的高度吗?
18、全屏滚动的原理是什么?用到了CSS的那些属性?
19、什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?
20、视差滚动效果,如何给每页做不同的动画?(回到顶部,向下滑动要再次出现,和只出现一次分别怎么做?)
21、::before 和 :after中双冒号和单冒号 有什么区别?解释一下这2个伪元素的作用。
22、如何修改chrome记住密码后自动填充表单的黄色背景 ?
23、你对line-height是如何理解的?
24、设置元素浮动后,该元素的display值是多少?(自动变成display:block)
25、怎么让Chrome支持小于12px 的文字?
26、让页面里的字体变清晰,变细用CSS怎么做?(-webkit-font-smoothing: antialiased;)
27、font-style属性可以让它赋值为“oblique” oblique是什么意思?
28、position:fixed;在android下无效怎么处理?
29、如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
30、display:inline-block 什么时候会显示间隙?(携程)
31、overflow: scroll时不能平滑滚动的问题怎么处理?
32、有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填满剩下的高度。
33、png、jpg、gif 这些图片格式解释一下,分别什么时候用。有没有了解过webp?
34、什么是Cookie 隔离?(或者说:请求资源的时候不要让它带cookie怎么做)
35、style标签写在body后与body前有什么区别?
四、JavaScript
1、介绍JavaScript的基本数据类型。
2、说说写JavaScript的基本规范?
3、JavaScript原型,原型链 ? 有什么特点?
4、JavaScript有几种类型的值?(堆:原始数据类型和 栈:引用数据类型),你能画一下他们的内存图吗?
5、Javascript如何实现继承?
6、Javascript创建对象的几种方式?
7、Javascript作用链域?
8、谈谈This对象的理解。
9、eval是做什么的?
10、什么是window对象? 什么是document对象?
11、null,undefined的区别?
12、写一个通用的事件侦听器函数(机试题)。
13、[“1”, “2”, “3”].map(parseInt) 答案是多少?
14、关于事件,IE与火狐的事件机制有什么区别? 如何阻止冒泡?
15、什么是闭包(closure),为什么要用它?
16、javascript 代码中的”use strict”;是什么意思 ? 使用它区别是什么?
17、如何判断一个对象是否属于某个类?
18、new操作符具体干了什么呢?
19、用原生JavaScript的实现过什么功能吗?
20、Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
21、对JSON的了解?
22、[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解释一下这段代码的意思吗?
23、js延迟加载的方式有哪些?
24、Ajax 是什么? 如何创建一个Ajax?
25、同步和异步的区别?
26、如何解决跨域问题?
27、页面编码和被请求的资源编码如果不一致如何处理?
28、模块化开发怎么做?
29、AMD(Moles/Asynchronous-Definition)、CMD(Common MoleDefinition)规范区别?
30、requireJS的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何 缓存的?)
31、让你自己设计实现一个requireJS,你会怎么做?
32、谈一谈你对ECMAScript6的了解?
33、ECMAScript6 怎么写class么,为什么会出现class这种东西?
34、异步加载的方式有哪些?
35、documen.write和 innerHTML的区别?
36、DOM操作——怎样添加、移除、移动、复制、创建和查找节点?
37、.call() 和 .apply() 的含义和区别?
38、数组和对象有哪些原生方法,列举一下?
39、JS 怎么实现一个类。怎么实例化这个类
40、JavaScript中的作用域与变量声明提升?
41、如何编写高性能的Javascript?
42、那些操作会造成内存泄漏?
43、JQuery的源码看过吗?能不能简单概况一下它的实现原理?
44、jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?
45、jquery中如何将数组转化为json字符串,然后再转化回来?
46、jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
47、jquery.extend 与 jquery.fn.extend的区别?
48、jQuery 的队列是如何实现的?队列可以用在哪些地方?
49、谈一下Jquery中的bind(),live(),delegate(),on()的区别?
50、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
51、是否知道自定义事件。jQuery里的fire函数是什么意思,什么时候用?
52、jQuery 是通过哪个方法和 Sizzle 选择器结合的?(jQuery.fn.find()进入Sizzle)
53、针对 jQuery性能的优化方法?
54、Jquery与jQuery UI有啥区别?
55、JQuery的源码看过吗?能不能简单说一下它的实现原理?
56、jquery 中如何将数组转化为json字符串,然后再转化回来?
57、jQuery和Zepto的区别?各自的使用场景?
58、针对 jQuery 的优化方法?
59、Zepto的点透问题如何解决?
60、jQueryUI如何自定义组件?
61、需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?
62、如何判断当前脚本运行在浏览器还是node环境中?(阿里)
63、移动端最小触控区域是多大?
64、jQuery 的 slideUp动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
65、把 Script 标签 放在页面的最底部的body封闭之前 和封闭之后有什么区别?浏览器会如何解析它们?
66、移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有 300ms 延迟,为了实现safari的双击事件的设计,浏览器要知道你是不是要双击操作。)
67、知道各种JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能讲出他们各自的优点和缺点么?
68、Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?
69、解释JavaScript中的作用域与变量声明提升?
70、那些操作会造成内存泄漏?
71、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
72、Node.js的适用场景?
(如果会用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?
73、解释一下 Backbone 的 MVC 实现方式?
74、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?
75、知道什么是webkit么? 知道怎么用浏览器的各种工具来调试和debug代码么?
76、如何测试前端代码么? 知道BDD, TDD, Unit Test么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
77、前端templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
78、简述一下 Handlebars 的基本用法?
79、简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
80、用js实现千位分隔符?(来源:前端农民工,提示:正则+replace)
检测浏览器版本版本有哪些方式?
81、我们给一个dom同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获