2020年Web前端面试题汇总(一)

如题所述

今天小编要跟大家分享的文章是关于2020年Web前端面试题汇总。由于内容较多小编分开为大家介绍,今天首先来和小编一起看一看第一部分的内容,希望这些面试题能够对正准备找Web前端相关工作的小伙伴们有所帮助。





1.说几条写JavaScript的基本规范?


1)不要在同一行声明多个变量;


2)请使用===/!==来比较true/false或者数值;


3)使用对象字面量替代newObject这种形式;


4)减少使用全局函数,全局变量;


5)switch语句必须带有default分支;


6)if语句必须使用大括号;


7)for-in循环中的变量;


应该使用var关键字明确限定作用域;


从而避免作用域全局污染。


2.说说平衡二叉树?


平衡二叉搜索树(Self-balancingbinarysearchtree)


又被称为AVL树。


具有以下性质:


1)它是一棵空树或它的左右两个子树


的高度差的绝对值不超过1,


并且左右两个子树都是一棵平衡二叉树。


2)平衡二叉树必定是二叉搜索树,反之则不一定。


3)平衡二叉树的常用实现方法有红黑树、AVL、


替罪羊树、Treap、伸展树等。


最小二叉平衡树的节点的公式如下:


F(n)=F(n-1)+F(n-2)+1备注:1是根节点,


F(n-1)是左子树的节点数量,


F(n-2)是右子树的节点数量。


3.清除浮动和解决垂直外边距重叠的解决方案?


问题描述:


1)父元素没有设置宽高,尺寸由子元素撑起;


子元素一旦浮动,父元素高度会发生塌陷。


2)子元素设置margin-top会作用的父元素的margin-top;


此时会造成垂直外边距重叠。


.clearfix::after,.clearfix::before{


content:'';


display:table;


clear:both;


}


4.sessionStorage、localStorage和cookie?


相同点:


都用于浏览器端存储的缓存数据;


不同点:


1)存储内容是否发送到服务器端


当设置了Cookie后,数据会发送到服务器端,


造成一定的宽带浪费;xxxstorage则会将数据保存


到本地,不会造成宽带浪费;


2)数据存储大小不同


Cookie数据不能超过4K,适用于会话标识;


xxxstorage数据存储可以达到5M;


3)数据存储的有效期限不同


cookie只在设置了Cookid过期时间


之前一直有效,即使关闭窗口或者浏览器;


sessionStorage,仅在关闭浏览器之前有效;


localStorage,数据存储永久有效;


4)作用域不同


cookie和localStorage是在同源同窗口中


都是共享的;


sessionStorage不在不同的浏览器窗口


中共享,即使是同一个页面;


5.判断一个单词是否是回文?


回文是指把相同的词汇或句子,


在下文中调换位置或颠倒过来,


产生首尾回环的情景,


叫做回文,也叫回环。


比如cacac,redivider。


letcheckPalindrom=(str)=>{


returnstr===


str.split('').reverse().join('');


}


6.不借助临时变量,进行两个整数的交换?


输入a=3,b=1,


输出a=1,b=3


letswap=(a,b)=>{


b=b-a;


a=a+b;


b=a-b;


return[a,b];


}


7.请写出至少5个html5新增的标签,并说明其语义和应用场景?


section:定义文档中的一个章节;


nav:定义只包含导航链接的章节;


header:定义页面或章节的头部;


它经常包含logo、页面标题和导航性的目录。


footer:定义页面或章节的尾部;


它经常包含版权信息、法律信息链接和反馈建议用的地址。


aside:定义和页面内容关联度较低的内容,


如果被删除,剩下的内容仍然很合理。


8.get和post请求在缓存方面的区别?


get请求类似于查找的过程,用户获取数据,


可以不用每次都与数据库连接,所以可以使用缓存。


post不同,post做的一般是修改和删除的工作,


所以必须与数据库交互,所以不能使用缓存。


因此get请求适合于请求缓存。


9.如何解决异步回调地狱?


promise、generator、async/await


10.图片的懒加载和预加载?


预加载:提前加载图片,


当用户需要查看时可直接


从本地缓存中渲染。


懒加载:懒加载的主要目的


是作为服务器前端的优化,


减少请求数或延迟请求数。


两种技术的本质:


两者的行为是相反的,


一个是提前加载,


一个是迟缓甚至不加载。


懒加载对服务器前端有一定


的缓解压力作用,


预加载则会增加服务器前端压力。


11.bind,apply,call的区别?


通过apply和call改变函数的this指向,


这两个函数的第一个参数都是一样的,


表示要改变指向的那个对象,


第二个参数,apply是数组,


而call则是arg1,arg2...这种形式。


通过bind改变this作用域


会返回一个新的函数,


这个函数不会马上执行。


12.js怎么控制一次加载一张图片,加载完后再加载下一张?


方法一:





varobj=newImage();


obj.src="#/21.jpg";


obj.onload=function(){


document.getElementById("pic")


.innnerHTML="";


}


加载中


方法二:





varobj=newImage();


obj.src="#/21.jpg";


obj.onreadystatechange=function(){


if(this.readyState=="complete"){


document.getElementById("pic")


.innnerHTML="";


}


}





加载中


以上就是小编今天为大家分享的关于2020年Web前端面试题汇总的文章,希望本篇文章能够对想要参加web前端面试的小伙伴们有所帮助,想要了解更多Web前端相关知识记得关注北大青鸟Web培训官网。最后祝愿小伙伴们面试成功,成为一名优秀的Web前端工程师。


温馨提示:答案为网友推荐,仅供参考
相似回答