肝了一晚上整理出来的前端面试题

我是一个前端,如果你是想一起学习,一起找工作,一起进步的,那你可以加我;咱们交个朋友,一起学习前端技术,咱们一起找工作,一起交流 如果你是不上进,不学习,打广告的,或者整体怨天怨地的,那千万别别别加我,我不想跟你这种人交朋友!
点击链接:
 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师~关注公众号:[搞前端的半夏,了解更多前端知识!
1.H5 的新特性有哪些
画布 (Canvas) API
地理 (Geolocation) API
音频、视频 API(audio,video)
localStorage sessionStorage
webworker websocket
header,nav,footer,aside,article,section
web worker 是运行在浏览器后台的 js 程序,他不影响主程序的运行,是另开的一个 js 线程,可以用
这个线程执行复杂的数据操作,然后把操作结果通过 postMessage 传递给主线程,这样在进行复杂
且耗时的操作时就不会阻塞主线程了
2.Label 的作用是什么?是怎么用的?
label 标签来定义表单控制间的关系 , 当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控
件上。
3.HTML5 form 如何关闭自动完成功能
给不想要提示的 form 或某个 input 设置为 autocomplete=off
<label for="Name">Number:</label>
<input type=“text“name="Name" id="Name"/>
<label>Date:<input type="text" name="B"/></label> 声明位于文档中的最前面的位置,处于 `` 标签之前。此标签可告知浏览器文档使用哪种 HTML
XHTML 规范。(重点:告诉浏览器按照何种规范解析页面)
4.dom 如何实现浏览器内多个标签页之间的通信 ? ( 阿里 )
1 WebSocket SharedWorker
2 )也可以调用 localstorge cookies 等本地存储方式; localstorge 另一 个浏览上下文里被添加、修改
或删除时,它都会触发一个事件,我们通 过监听事件,控制它的值来进行页面信息通信;
3 )注意 quirks Safari 在无痕模式下设置 localstorge 值时会抛出 QuotaExceededError 的异常;
5. 实现不使用 border 画出 1px 高的线,在不同浏览器的标准模式与怪异模式下都
能保持一致的效果
6.title h1 的区别、 b strong 的区别、 i em 的区别?
title 属性没有明确意义只表示是个标题, H1 则表示层次明确的标题,对页面信息的抓取也有很大的影
响;
strong 是标明重点内容,有语气加强的含义,使用阅读设备阅读网络时: <strong> 会重读,而 <B>
是展示强调内容。
i 内容展示为斜体, me 表示强调的文本;
Physical Style Elements -- 自然样式标签
b, i, u, s, pre
Semantic Style Elements -- 语义样式标签
strong, em, ins, del, code
应该准确使用语义样式标签, 但不能滥用 , 如果不能确定时首选使用自然样式标签。
7. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么 ?
Trident 内核 :IE 系列
Gecko 内核 :Firefox
Webkit 内核 :Safari
Blink 内核:是基于 Webkit 内核的子项目 , 使用的浏览器有:
Chrome/opera 等除 IE Firefox Safari 之外的几乎所有浏览器
几乎所有国产双内核浏览器( Trident/Blink )如 360 、猎豹、 qq 、百度等
8. 每个 HTML 文件里开头都有个很重要的东西, Doctype ,知道这是干什么的吗?
文档声明。
<div style="height:1px;overflow:hidden;background:red"></div> IE 下如不书写文档声明会使用怪异模式解析网页导致一系列 CSS 兼容性问题
9.div+css 的布局较 table 布局有什么优点
正常场景一般都适用 div+CSS 布局,
优点:
1 )结构与样式分离
2 )代码语义性好
3 )更符合 HTML 标准规范
4 SEO 友好
Table 布局的适用场景:
某种原因不方便加载外部 CSS 的场景,例如邮件正文,此时用 table 布局可以在无 css 情况下保持页面布局
正常
10.img alt title 有何异同? strong em 的异同
alt(alt text): 为不能显示图像、窗体或 applets 的用户代理( UA ), alt 属性用来指定替换文字。替换文字
的语言由 lang 属性指定。 ( IE 浏览器下会在没有 title 时把 alt 当成 tool tip 显示 )
title(tool tip): 该属性为设置该属性的元素提供建议性的信息。
em: 表现为斜体,语义表示强调
strong: 表现为粗体,语义为强烈语气,强调程度超过 em
11. 简述一下 src href 的区别
src 用于替换当前元素, href 用于在当前文档和引用资源之间确立联系。
src source 的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求
src 资源时会将其指向的资源下载并应用到文档内,例如 js 脚本, img 图片和 frame 等元素。
当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片
和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将 js 脚本放在底部而不是头
部。
href Hypertext Reference 的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链
接)之间的链接,如果我们在文档中添加
<script src =”js.js”></script>
<link href="common.css" rel="stylesheet"/> 那么浏览器会识别该文档为 css 文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么
建议使用 link 方式来加载 css ,而不是使用 @import 方式。
12. 知道的网页制作会用到的图片格式有哪些
png-8 png-24 jpeg gif svg
但是上面的那些都不是面试官想要的最后答案。面试官希望听到是 Webp 。(是否有关注新技术,新鲜
事物)
科普一下 Webp WebP 格式,谷歌( google )开发的一种旨在加快图片加载速度的图片格式。图片压缩
体积大约只有 JPEG 2/3 ,并能节省大量的服务器带宽资源和数据空间。 Facebook Ebay 等知名网站已经
开始测试并使用 WebP 格式。
在质量相同的情况下, WebP 格式图像的体积要比 JPEG 格式图像小 40%
13. css/js 代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次 js
请求一般情况下有哪些地方会有缓存处理
dns 缓存, cdn 缓存,浏览器缓存,服务器缓存
14. 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些
图片的加载,给用户更好的体验
1 )图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端的距离与
页面的距离,如果前者小于后者,优先加载。
2 )如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先下载。
3 )如果图片为 css 图片,可以使用 CSSsprite SVGsprite Iconfont Base64 等技术。
4 )如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用
户体验。
5 )如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片压缩,图片压缩
后大小与展示一致
15. 你如何理解 HTML 结构的语义化
1 )更符合 W3C 统一的规范标准,是技术趋势。
2 )没有样式时浏览器的默认样式也能让页面结构很清晰。
3 )对功能障碍用户友好。屏幕阅读器(如果访客有视障)会完全根据你的标记来 你的网页。
4 )对其他非主流终端设备友好。例如机顶盒、 PDA 、各种移动终端。
5 )对 SEO 友好。
16. 谈谈以前端角度出发做好 SEO 需要考虑什么
搜索引擎主要以 :
外链数量和质量 , 网页内容和结构等来决定某关键字下的网页搜索排名。
前端应该注意网页结构和内容方面的情况:
1 Meta 标签优化:主要包括主题( Title) ,网站描述 (Description) 。还有一些其它的隐藏文字比如
Author (作者), Category (目录), Language (编码语种)等,符合 W3C 规范的语义性标签的使用
2 )如何选取关键词并在网页中放置关键词:搜索就得用关键词。关键词分析和选择是 SEO 最重要的工作
之一。首先要给网站确定主关键词(一般在 5 个上下),然后针对这些关键词进行优化,包括关键词密度
Density ),相关度( Relavancy ),突出性( Prominency )等等。
17.html5 有哪些新特性、移除了那些元素
新特性:
1 )拖拽释放 (Drag and drop) API
2 )语义化更好的内容标签( header,nav,footer,aside,article,section
3 )音频、视频 API(audio,video)
4 ) 画布 (Canvas) API
5 )地理 (Geolocation) API
6 ) 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;
7 sessionStorage 的数据在浏览器关闭后自动删除
8 )表单控件, calendar date time email url search
9 )新的技术 webworker, websocket, Geolocation
移除的元素:
1 )纯表现的元素: basefont big center font, s strike tt u
2 )对可用性产生负面影响的元素: frame frameset noframes
18. 如何处理 HTML5 新标签的浏览器兼容问题
IE8/IE7/IE6 支持通过 document.createElement 方法产生的标签,可以利用这一特性让这些浏览器支持
HTML5 新标签,浏览器支持新标签后,还需要添加标签默认的样式(当然最好的方式是直接使用成熟的
框架、使用最多的是 html5shim 框架):
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]--> 19. 如何区分 HTML HTML5
DOCTYPE 声明新增的结构元素、功能元素
20.HTML5 Canvas 元素有什么用
Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作
21. 如何在 HTML5 页面中嵌入音频
HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3 Wav Ogg
22. 如何在 HTML5 页面中嵌入视频
和音频一样, HTML5 定义了嵌入视频的标准方法,支持的格式包括: MP4 WebM Ogg
23.HTML5 引入什么新的表单属性
datalist datetime output keygen date month week time number range emailurl
24. 语义化的理解
用正确的标签做正确的事情!
html 语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;
在没有样式 CSS 情况下也以一种文档格式显示,并且是容易阅读的。
搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO
使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解
<audio controls>
<source src="jamshed.mp3" type="audio/mpeg">
Your browser does'nt support audio embedding feature.
</audio>
<video width="450" height="340" controls>
<source src="jamshed.mp4" type="video/mp4">
Your browser does'nt support video embedding feature.
</video>
25. 介绍一下你对浏览器内核的理解
主要分成两部分:渲染引擎 (layout engineer Rendering Engine) JS 引擎
渲染引擎:负责取得网页的内容( HTML XML 、图像等等)、整理讯息(例如加入 CSS 等),以及计算
网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,
所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用
程序都需要内核
JS 引擎则:解析和执行 javascript 来实现网页的动态效果
最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎
26. 浏览器是怎么对 HTML5 的离线储存资源进行管理和加载的呢
在线的情况下,浏览器发现 html 头部有 manifest 属性,它会请求 manifest 文件,如果是第一次访问
app ,那么浏览器就会根据 manifest 文件的内容下载相应的资源并且进行离线存储。如果已经访问过
app 并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的
manifest 文件与旧的 manifest 文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么
就会重新下载文件中的资源并进行离线存储。
离线的情况下,浏览器就直接使用离线存储的资源
27. 请描述一下 cookies sessionStorage localStorage 的区别
cookie 是网站为了标示用户身份而储存在用户本地终端( Client Side )上的数据(通常经过加密)
cookie 数据始终在同源的 http 请求中携带(即使不需要),记会在浏览器和服务器间来回传递
sessionStorage localStorage 不会自动把数据发给服务器,仅在本地保存
存储大小:
cookie 数据大小不能超过 4k
sessionStorage localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M 或更大
有期时间:
localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据
sessionStorage 数据在当前浏览器窗口关闭后自动删除
cookie 设置的 cookie 过期时间之前一直有效,即使窗口或浏览器关闭
28.css sprite 是什么 , 有什么优缺点
概念:将多个小图片拼接到一个图片中。通过 background-position 和元素尺寸调节需要显示的背景图
案。
优点:
减少 HTTP 请求数,极大地提高页面加载速度
增加图片信息重复度,提高压缩比,减少图片大小
更换风格方便,只需在一张或几张图片上修改颜色或样式即可实现 缺点:
图片合并麻烦
维护麻烦,修改一个图片可能需要从新布局整个图片,样式
29.canvas 如何绘制一个三角形 | 正方形
moveto 是移动到某个坐标, lineto 是从当前坐标连线到某个坐标。
这两个函数加起来就是画一条直线。 画线要用 ,那么 MoveTo() 把笔要画的起始位置固定了( x,y )然
后要固定终止位置要用到 LineTo 函数确定终止位置( xend,yend , 这样一条线就画出来了。 每次与前面
一个坐标相连 。
stroke() 方法会实际地绘制出通过 moveTo() lineTo() 方法定义的路径。默认颜色是黑色。
30. 弹性盒子模型 ? flex|box 区别 ?
1 )引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的条目进行排列、对齐和分配
空白空间。
即便容器中条目的尺寸未知或是动态变化的,弹性盒布局模型也能正常的工作。在该布局模型中,容器
会根据布局的需要,调整其中包含的条目的尺寸和顺序来最好地填充所有可用的空间。
当容器的尺寸由于屏幕大小或窗口尺寸发生变化时,其中包含的条目也会被动态地调整。比如当容器尺
寸变大时,其中包含的条目会被拉伸以占满多余的空白空间;当容器尺寸变小时,条目会被缩小以防止
超出容器的范围。弹性盒布局是与方向无关的。
在传统的布局方式中, block 布局是把块在垂直方向从上到下依次排列的;
inline 布局则是在水平方向来排列。弹性盒布局并没有这样内在的方向限制,可以由开发人员自由操
作。
<!DOCTYPE HTML5><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> 画布 </title>
</head> <body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid
#c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<script type="text/javascript">
var c=document.getElementById("myCanvas");// 三角形
var cxt=c.getContext("2d");
cxt.moveTo(10,10);
cxt.lineTo(50,50);
cxt.lineTo(10,50);
cxt.lineTo(10,10);
cxt.stroke();// 正方形
var cxt2=c.getContext("2d");
cxt2.moveTo(60,10);
cxt2.lineTo(100,10);
cxt2.lineTo(100,50);
cxt2.lineTo(60,50);
cxt2.lineTo(60,10);
cxt2.stroke();
</script></body></html> 2 flex box 的区别 : display box 是老规范,要兼顾古董机子就加上它; 父级元素有 display:box; 属性
之后。他的子元素里面加上 box-flex 属性。可以让子元素按照父元素的宽度进行一定比例的分占空间。
flex 是最新的,董机老机子不支持的;
父元素设置 display:flex 后,子元素宽度会随父元素宽度的改变而改变,而 display:box 不会。 Android
UC 浏览器只支持 display: box 语法;而 iOS UC 浏览器则支持两种方式。
31. 解释在 ie 低版本下的怪异盒模型和 c3 的怪异盒模型 和 弹性盒模型 ?
IE padding+border 的值小于 width 或者 height:
盒模型的宽度 =margin( 左右 )+width width 已经包含了 padding border 的值)
盒模型的高度 =margin( 上下 )+height height 已经包含了 padding border 的值)
padding+border 的值大于 width 或者 height:
盒模型的宽度 =margin( 左右 )+padding( 左右 )+border( 左右 )
盒模型的高度 =margin( 上下 )+padding( 上下 )+border( 上下 )+19px (加一个默认行高 19px ) 所以相当
于是 padding+border width 或者 height 比大小,谁大取谁。
以上几种 DOCTYPE 都是标准的文档类型,无论使用哪种模式完整定义 DOCTYPE ,都会触发标准模式,
而如果 DOCTYPE 缺失则在 ie6 ie7 ie8 下将会触发怪异模式( quirks 模式) CSS3box-sizing 有两个值
一个是 content-box ,另一个是 border-box
当设置为 box-sizing:content-box 时,将采用标准模式解析计算,也是默认模式;
当设置为 box-sizing:border-box 时,将采用怪异模式解析计算;
Css3 弹性盒模型引入了新的盒子模型 弹性盒模型,该模型决定一个盒子在其他盒子中的分布方式以及
如何处理可用的空间。使用
  • 33
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 35
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YOLO大王

你的打赏,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值