属于你的前端面试题来了,注意查收

1、img标签的title和alt属性有什么区别?

  • alt:图片加载失败时,显示在网页上的替代文字
  • title:鼠标(手机端该属性无意义)放在图片上时显示的文字
  • alt是必需属性(但属性值可为空),title非必需

2、图片懒加载原理

图像是imng标记,浏览器根据图像的src属性请求图像,因此惰性加载的关键是当图像不在可视区域时,不给imgs‘赋值。

懒加载的思路及实现代码详见js实现图片懒加载原理

3、父元素高度塌陷的解决方案

1.给父元素设置 overflow:hidden

2.利用伪元素

div::after {
    display: block;
    content: "";
    clear: both;
}

3.添加一个div

<style>
  .cf {
    	clear: both;
  }
</style>
<div>
  .......
  .......
  <div class="cf"></div>
</div>

4.var,let,const的比较?

var声明变量存在变量提升,let和const不存在变量提升

let、const都是块级局部变量

const定义的是常量,值无法改变,且必须一开始定义就初始化

同一作用域下let和const不能声明同名变量,而var可以

5.有哪些数据类型?

值类型(基本类型):

字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

引用数据类型:

对象(Object)、数组(Array)、函数(Function)。

6、判断数据类型的方式有哪些

typeof

instanceof

constructor

Object.prototype.toString.call()

7、数组去重的方式

1、使用set

2、使用 filter()

3、使用 reduce()

const array = [' ', 1, 2, ' ',' ', 3];
// 1: "Set"
[...new Set(array)];
// 2: "Filter"
array.filter((item, index) => array.indexOf(item) === index);
// 3: "Reduce"
array.reduce((unique, item) =>
unique.includes(item) ? unique : [...unique, item], []);
?// RESULT:
// [' ', 1, 2, 3];

8、SVG和CANVAS的区别?

SVG

表示以XML格式定义图像的可伸缩矢量图形。

CANVAS

通过 JavaScript 来绘制 2D 图形。

9、在浏览器中输入一个网址后,发生了什么?

第一步 浏览器通过DNS查找该域名的 IP 地址

第二步 浏览器根据解析得到的IP地址向 web 服务器发送一个 HTTP 请求

第三步 服务器收到请求并进行处理

第四步 服务器返回一个响应

第五步 浏览器对该响应进行解码,解析html为dom、解析css 为css-tree、dom+ css 生成render-tree 绘图

第六步 页面显示完成后,浏览器发送异步请求。

第七步 整个过程结束之后,浏览器关闭TCP连接。

10、如何理解同步和异步?

同步:按照代码书写顺序一一执行处理指令的一种模式,上一段代码执行完才能执行下一段代码。

异步:可以理解为一种并行处理的方式,不必等待一个程序执行完,可以执行其它的任务。

JS之所以需要异步的原因在于JS是单线程运行的。常用的异步场景有:定时器、ajax请求、事件绑定。

11.HTML5的离线储存?

localStorage 长期存储数据,浏览器关闭后数据不丢失;

sessionStorage 数据在浏览器关闭后自动删除。

12、什么是闭包?闭包的特性是什么?

闭包是能够读取其他函数内部变量的函数

要理解闭包,首先必须理解Javascript特殊的变量作用域

闭包的特性:

1.封闭性

:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;

2.持久性:一般的函数,调用完之后,系统会自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包依然存在。

13.get与post的区别

1.GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

2.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),POST把提交的数据则放置在是HTTP包的包体中。

3. 因此对于GET提交时,传输数据就会受到URL长度的限制。 POST:由于不是通过URL传值,理论上数据不受限。

4.安全性:POST的安全性要比GET的安全性高。

14、常用那几种浏览器测试?有哪些内核(Layout Engine)?

  (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。

  (Q2) 内核:Trident,Gecko,Presto,Webkit。

15、css水平、垂直居中的写法,请至少写出4种?

这题考查的是css的基础知识是否全面,所以平时一定要注意多积累

水平居中

行内元素: text-align: center

块级元素: margin: 0 auto

position:absolute +left:50%+ transform:translateX(-50%)

display:flex + justify-content: center

垂直居中

设置line-height 等于height

position:absolute +top:50%+ transform:translateY(-50%)

display:flex + align-items: center

display:table+display:table-cell + vertical-align: middle;

原文链接:,转发请注明来源!