1.达内教育
2.千锋教育
3.天琥教育
4.汇众教育
5.中公IT
6.火星时代
7.万和教育
8.博雅环球教育
9.新猿IT
10.仑智教育
石家庄专业web前端培训,2016年,教育部高教司授予达内教育集团教育部产学合作协同育人项目合作伙伴奖,2019年11月,达内教育集团荣获腾讯教育2019年度行业标杆教育集团,2019年1月,达内教育集团荣获2018年百度品牌数字资产榜教育培训行业最具价值IT培训品牌...
Web前端面试题汇总(一)
今天小编要跟大家分享的文章是关于Web前端面试题汇总。由于内容较多小编分开为大家介绍,今天首先来和小编一起看一看第一部分的内容,希望这些面试题能够对正准备找Web前端相关工作的小伙伴们有所帮助。
1. 说几条写JavaScript的基本规范?
1) 不要在同一行声明多个变量;
2) 请使用===/!==来比较true/false或者数值;
3) 使用对象字面量替代new Object这种形式;
4) 减少使用全局函数, 全局变量;
5) switch语句必须带有default分支;
6) if语句必须使用大括号;
7) for-in循环中的变量;
应该使用var关键字明确限定作用域;
从而避免作用域全局污染。
2. 说说平衡二叉树?
平衡二叉搜索树(Self-balancing binary search tree)
又被称为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 。
let checkPalindrom = (str)=>{
return str ===
str.split('').reverse().join('');
}
6. 不借助临时变量,进行两个整数的交换?
输入 a = 3, b =1,
输出 a = 1, b =3
let swap = (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怎么控制一次加载一张图片,加载完后再加载下一张?
方法一:
<script type="text/javascript">
var obj=new Image();
obj.src="http://www.itlike.com/21.jpg";
obj.onload=function(){
document.getElementById("pic")
.innnerHTML="<img src='"+this.src+"' />";
}
</script><div id="pic">加载中……</div>
方法二:
<script type="text/javascript">
var obj=new Image();
obj.src="http://www.itlike.com/21.jpg";
obj.onreadystatechange=function(){
if(this.readyState=="complete"){
document.getElementById("pic")
.innnerHTML="<img src='"+this.src+"' />";
}
}
</script>
<div id="pic">加载中……</div>
2020年12月,达内教育集团荣获北京商报“2020年企业社会责任抗疫典范奖”,2020年12月,达内教育集团荣获网易金翼奖“2020年度品牌影响力教育集团大奖”,2020年12月,达内教育集团荣获腾讯教育“2020年度行业标杆教育集团”大奖...