2022年经典前端面试题.pdf
《2022年经典前端面试题.pdf》由会员分享,可在线阅读,更多相关《2022年经典前端面试题.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年经典前端面试题(一)一、HTML/CSS篇1、W e b sql 是H T M L 5 的一个规范吗?【仅供参考】不是,许多人把它标记为H T M L 5,但是它不是H T M L 5 规范的一部分,这个规范是基于S Q L i te 的2、H T M L 5 中的应用缓存是什么?【仅供参考】H T M L 5 应用缓存的最终目的是帮助用户离线浏览页面。换句话说,如果网络连接不可用,打开的页面就来自浏览器缓存,离线应用缓存可以帮助用户达到这个目的。应用缓存可以帮助用户指定哪些文件需要缓存,哪些不需要3、如何使用C a nv a s和H T M L 5 中的S V G 画一个矩形?【仅
2、供参考】使用S V G 绘制矩形的代码如下:使 用 C a nv a s绘制矩形的代码如下。v a r c a nv a s=d oc u m e nt.g e tE l e m e ntB y l d (m y c a nv a sj ;v a r c tx=c a nv a s.g e tC onte x t(2 d );c tx.r e c t(1 00,1 00,3 00,2 00);c tx f i l l sty l e =pi nk c tx.f i l l ()4、ti tl e 与 hl的区别?【仅供参考】ti tl e 属性没有明确意义只表示是个标题,hl则表示层次明确的标
3、题,对页面信息的抓取也有很大的影响。5、H T M L 5 如何实现跨域?【仅供参考】在服务器端设置允许在其他域名下访问,例如允许所有域名访问以下内容。r e sponse.se tH e a d e r (A c c e ss-C ontr ol-A l l ow-O r i g i n,*);r e sponse.se tH e a d e r (A c c e ss-C ontr ol-A l l ow-M e th od s,P O S T );r e sponse.se tH e a d e r (A c c e ss-C ontr ol-A l l ow-H e a d e r s
4、,x-r e qu e ste d-w i th,c onte nt-第1/2 7页ty pe );6、i f r a m e 的优缺点?【仅供参考】优点:解决加载缓慢的第三方内容如图标和广告等的加载问题S e c u r i ty sa nd b ox并行加载脚本缺点:i f r a m e 会阻塞主页面的O nl oa d 事件即时内容为空,加载也需要时间没有语意7、应用缓存中的回退是什么?【仅供参考】应用缓存中的回退会帮助你指定在服务器不可访问时,显示某文件。例如在下面的m a ni f e st文件中,如果用户输入了“/h om e”,同时服务器不可到达,“4 04 h tm”文件应送
5、达。F A L L B A C K:/h om e/4 04.h tm l8、应用缓存中网络命令的作用是什么?【仅供参考】网络命令描述不需要缓存的文件,例如以下代码中“login.php”始终都不应该缓存或者离线访问。NE T W OR Klogin,php9、行内元素有哪些?块级元素有哪些?空(void)元素有那些?【仅供参考】定义:C S S 规范规定,每个元素都有d is pla y属性,确定该元素的类型,每个元素都有默认的d is pla y值,如 d i v 的 d is pla y默认值为“b loc k”,则 为“块级”元素;s pa n默认d is pla y属性值为inlin
6、e”,是“行内”元素。行内元素有:a b s pa n img inpu t s e le c t s t r ong(强调的语气)块级元素有:d iv u l ol li d l d t d d hl h2 h3 h4 p空元素:常见:b r hr img inpu t link me t a不常见:a r e a b a s e c ol c omma nd e mb e d k e yge n pa r a m s ou r c e t r a c k wb r1 0、本地存储的数据有生命周期吗?【仅供参考】本地存储的数据没有生命周期,它将一直存储数据,直到用户从浏览器清除或者使用第2/
7、2 7 页J a va S c r ipt 代码移除。1 1、哪些浏览器支持H T M L 5?【仅供参考】几乎所有的浏览器(如 S a f a r i、C hr ome F ir e f ox Ope r a I E)都支持H T M L 51 2、如何显示我们自己画的一个弹框?【仅供参考】可以用一个简单的方法,在页面上单击一个按钮,弹出一个弹框,而弹框也是自己写的一个d ivo单击前,先把弹框隐藏,onc lic k 事件发生之后就会显示出来1 3、C a nva s 和S vG 的区别是什么?【仅供参考】两者的区别如下:(1)一 旦 C a nva s 绘制完成将不能访问像素或操作它;任
8、何使用S VG 绘制的形状都能被记忆和操作,可以被浏览器再次显示。(2)C a nva s 对绘制动画和游戏非常有利;S VG 对创建图形(如C AD)非常有利。(3)因为不需要记住以后事情,所 以 C a nva s 运行更快;因为为了之后的操作,S VG 需要记录坐标,所以运行比较缓慢。(4)在 C a n v a s 中不能为绘制对象绑定相关事件;在S V G 中可以为绘制对象绑定相关事件。(5)C a n v a s 绘制出的是位图,因此与分辨率有关;S v G 绘制出的是矢量图,因此与分辨率无关。1 4、c o o k i e 和 s e s s i o n 的区别是什么?【仅供参考
9、】区别如下:(1)c o o k i e 数据存放在客户的浏览器上,s e s s i o n 数据存放在服务器上。(2)c o o k i e 不是很安全,别人可以分析存放在本地的c o o k i e 并 进 行 c o o k i e 欺骗。考虑到安全问题应当使用s e s s i o n o(3)s e s s i o n 会在一定时间内保存在服务器上。当访问增多时,会占用较多服务器的资源。为了减轻服务器的负担,应当使用c o o k i e o(4)单 个 c o o k i e 保存的数据不能超过4K B,很多浏览器都限制一个站点最多保存20个c o o k i e。所以个人建议可
10、以将登录信息等重要信息存放在s e s s i o n 中,其他信息(如果需要保留)可以存 放 在 c o o k i e 中。1 5、H T M L 5 C a n v a s 元素有什么作用?【仅供参考】C a n v a s 元素用于在网页上绘制图形,该元素标签的强大之处在于可以直接在H T M L 上进行图形操作。第3/27 页1 6、画一条0.5p x 的直线?【仅供参考】考查的是c s s 3的t r a n s f o r mh e i gh t:I p x;t r a n s f o r m:s c a l e(0.5);1 7、你知道哪些关于l e t t e r-s p a
11、 c i n g的妙用?【仅供参考】可以用于消除i n l i n e-b l o c k 元素间的换行符空格间隙1 8、I r e m、l e m I v h、I p x 各自代表的含义?【仅供参考】r e m:r e m 是全部的长度都相对于根元素元素。通常做法是给h t m l 元素设置一个字体大小,然后其他元素的长度单位就为r e m。e m:子元素字体大小的e m 是相对于父元素字体大小,元素的w i d t h/h e i gh t/p a d d i n g/m a r gi n 用e m的话是相对于该元素的f o n t-s i z ev w/v h:全 称 是V i e w
12、p o r t W i d t h 和 V i e w p o r t H e i gh t,视窗的宽度和高度,相当于屏幕宽度和高度的遥,不过,处理宽度的时候%单位更合适,处 理 高 度 的 话 v h单位更好。p x:p x 像 素(P i x el)。相对长度单位。像素p x 是相对于显示器屏幕分辨率而言的。1 9、有什么方式可以对一个D 0 M设置它的C S S?【仅供参考】有以下三种方式。外链式,即通过li n k 标签引入一个外部C S S 文件中。内嵌式,即将C S S 代码写在s tyle标签内。行内式,即将C S S 代码写在元素的s tyle属性中。2 0、标准盒子模型和I
13、E (怪异)盒子模型理解多少?【仅供参考】b o x-s i z e:c o n ten t-b o x 是标准盒子模型,实际的区域是p a d d i n g +b o r d er +c o n ten t,c o n ten t区域就是设置的元素宽度,p a d d i n g 和b o r d er 会占用外部空间b o x-s i z e:b o r d er-b o x 的话,元素的宽度为p a d d i n g +b o r d er +c o n ten t,元素设置了宽度,不会占用外部空间。二、JS/ES6/TS篇1、a j a x 过程?【仅供参考】/-t A.I Trf
14、a.x ri T T.c .:t_ L t L A-f.口A.I Zrfa.A.P3.I 1 W m:t_ L第4/2 7页U J 创建X ML llltp K eq ues t河家,也观足刖建一个开步明用何家.(2)创建一个新的H T T P 请求,并指定该H T T P 请求的方法、U R L 及验证信息.(3)设置响应H T T P 请求状态变化的函数.(4)发送H T T P 请求.(5)获取异步调用返回的数据.(6)使用J a va S c r i p t和D O M实现局部刷新.2、J a va s c r i p t如何实现继承?【仅供参考】实例继承:将子构造函数的p r o t
15、o typ e指向父构造函数的一个实例原型继承:将子构造函数的p r o to typ e指向父构造函数的p r o to typ e构造函数绑定:使 用 c a ll或 a p p ly方法,将父对象的构造函数绑定在子对象上拷贝继承:如果把父对象的所有属性和方法,拷贝进子对象E S 6 语法 ex ten d s:c la s s C o lo r P o i n t ex ten d s P o i n t 3、d o c umen t lo a d 事件和 d o c umen t r ea d y事件的区别【仅供参考】页面加载完成有两种事件lo a d 是当页面所有资源全部加载完成后(
16、包括D O M文档树,c s s 文件,j s 文件,图片资源等),执行一个函数问题:如果图片资源较多,加载时间较长,o n l o ad 后等待执行的函数需要等待较长时间,所以一些效果可能受到影响$(d o c u m e n t),r e ad y。是当D 0M文档树加载完成后执行一个函数(不包含图片,c s s 等)所以会比l o ad 较快执行在原生的j S 中不包括r e ad y。这个方法,只有l o ad 方法就是o n l o ad 事件4、说几条写J av aS c r i p t 书写的基本规范?【仅供参考】代码一定要正确缩进,建议使用”二个或者四个空格 缩进语句结束使用分
17、号;规范定义J S O N对象,补全双引号用 和声明对象和数组变量和函数在使用前进行声明以大写字母开头命名构造函数,全大写命名常量代码段使用花括号 包裹还有要书写正确的标识标签5、说一下i n n e r H T ML 与 i n n e r T e x t 的作用与区别?【仅供参考】作用:都可以获取或者设置元素的内容区别:i n n e r H T ML 可以解析内容中的h t m l 标签第5/27页i n n e r T e x t 不能解析内容中的h t m l 标签6、用j s 递归的方式写1到100求和?【仅供参考】f u n c t i o n ad d(n u m l,n u
18、m 2)c o n s t n u m =n u m l +n u m 2;i f(n u m 2=100)r e t u r n n u m;e l s e r e t u r n ad d(n u m,n u m 2+1)v ar s u m =ad d(l,2);7、o f f s e t W i d t h/o f f s e t H e i g h t,c l i e n t W i d t h/c l i e n t H e i g h t,s c r o l l W i d t h/s c r o l W e i g h t 的区别?【仅供参考】o f f s e t W i d
19、 t h/o f f s e t H e i g h t 返回值包含 c o n t e n t +p ad d i n g +bo r d e r +包含滚动条,效果与e.g e t B o u n d i n g C l i e n t R e c t ()相同c l i e n t W i d t h/c l i e n t H e i g h t 返回值只包含c o n t e n t +p ad d i n g,如果有滚动条,也不包含滚动条s c r o l l W i d t h/s c r o l l H e i g h t 返回值包含 c o n t e n t +p ad d
20、 i n g +溢出内容的尺寸8、渐进增强与优雅降级【仅供参考】渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进,达到更好的用户体验。优雅降级:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。9、fo r i n 和 fo r o f【仅供参考】答案:(1)、fo r i n一般用于遍历对象的可枚举属性。以及对象从构造函数原型中继承的属性不建议使用fo r i n 遍历数组,因为输出的顺序是不固定的。如果迭代的对象的变量值是n u ll或 者 u n d e fi n e d,fo r i n 不执行循环体,建议在使用fo r i n
21、循环之前,先检查该对象的值是不是n u ll或 者 u n d e fi n e d(2)、fo r o ffo r o f 语句在可迭代对象(包括 A r r a y,M a p,S e t,S t r i n g,T y p e d A r r a y,a r gu m e n t s 对象等等)第6/27页上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句1 0、数组方法p o p()p u s h()u n s h i ft ()s h i ft ()【仅供参考】p o p ()尾部删除p u s h。尾部添加u n s h i ft ()头部添加s h i ft。头
22、部删除1 1、c o n t i n u e 与 b r e a k的区别【仅供参考】c o n t i n u e:跳过本次循环,直接进入下一次循环b r e a k:直接终止循环1 2、请解释一下什么是防抖与节流【仅供参考】防 抖(d e b o u n c e)总结:就是指触发事件后在n秒内函数只能执行一次,如 果 在 n秒内又触发了事件,则会重新计算函数执行时间。节 流(t h r o t t le)总结:就是每次触发事件的隔间至少要大于等于n 秒,不会重置计时1 3、T y p e s c r i p t 中?.,?,!:,_ ,*等符号的含义?【仅供参考】?.可选链?类似与短路或,
23、??避免了一些意外情况,0,N a N 以及”,fa ls e 被视为fa ls e 值。只有u n d e fi n d,n u ll被视为fa ls e 值。!.在变量名后添加!,可以断言排除u n d e fi n e d 和n u ll类型_ ,声明该函数将被传递一个参数,但您并不关心它!:待会分配这个变量,t s不要担心*求塞1 4、T y peS cript 中的泛型【仅供参考】T y peS cript 泛型是一个提供创建可重用组件方法的工具。它能够创建可以处理多种数据类型而不是单一数据类型的组件。泛型在不影响性能或生产率的情况下提供类型安全性。泛型允许我们创建泛型类、泛型函数、
24、泛型方法和泛型接口fu nct ion id ent it y (arg:T):T ret u rn arg;第7/2 7 页let ou t pu t 1 =id ent it y st ring(my S t ring);let ou t pu t 2 =id ent it y (1 0 0 );console,log(ou t pu t l);console.I og(ou t pu t 2);1 5、如何理解T y peS cript 中的类【仅供参考】T y peS cript 是一种面向对象的J av aS cript 语言,支持O O P 编程特性,比如类、接口等。与J av a
25、一样,类是用于创建可重用组件的基本实体。它是一组具有公共属性的对象。类是创建对象的模板或蓝图。它是一个逻辑实体。class”关键字用于在T y pescript 中声明一个类。class S t u d ent st u d C od e:nu mber;st u d N ame:st ring;const ru ct or(cod e:nu mber,name:st ring)t h is.st u d N ame=name;t h is.st u d C od e=cod e;)get G rad e():st ring ret u rn A+”;)类的特征:封装、继承、多态、抽象1 6、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 经典 前端 试题
限制150内