前言
本篇博客说是面试题收集,其实多是在复习前端知识时的个人知识点集锦(当然面试也经常提及),大多为记忆性的,因为实际工作中往往是只注重结果而不太关心该知识点是否掌握,于是很多不常用到的知识点时常忘记,所以就写了这篇博客用来收录这些知识点(长期更新)
HTML 和 CSS 知识点总结
CSS中link和@import的区别
1 | 1. Link属于html标签,而@import是CSS中提供的 |
盒模型
1 | 1. IE盒模型 宽width = 内容 + 内边距 + 边框 |
字体
1 | 1. 综合写法: font: font-style font-weight font-size/line-height font-family; |
背景
1 | 1. 综合写法: background: background-color background-image background-repeat background-attachment (没有强制书写的顺序) |
盒子阴影
1 | box-shadow: h-shadow v-shadow blur spread color inset[outset]可选 |
清除浮动
1 | 1. .clearfix:after { |
H5 \ CSS3新增
1 | 1. <audio>、<video>媒体标签元素 |
DOM 和 BOM 知识点总结
事件绑定和普通事件区别
1 | 1. 普通事件绑定只执行一次,如: |
事件委托
1 | // 简单的一个例子 |
DOM元素被删除,监听器是否被删除
1 | 1. 如果被删除的DOM元素是无引用的,该元素就会被gc(garbage collection) |
阻止事件冒泡和默认事件
1 | cancelBubble()只支持IE,return false,stopPropagation() |
window.onload和document.ready的区别
1 | 1. window.onload 是在dom文档树加载完和所有文件加载完之后执行的一个函数 |
JavaScript知识点总结
判断变量是否为数组数据类型
1 | 1. obj instanceof Array 在IE某些版本中不支持 |
创建函数的几种方式
1 | 1. 函数声明式 |
JSONP的原理
1 | 简述:现在本地定义一个接收数据的函数,当本地请求服务器上的js文件,服务器返回的js文件中的代码是对本地函数的调用,参数是服务器想要返回的数据 |
JS本地对象、内置对象、宿主对象
1 | 1. 本地对象(可实例化对象) |
模块异步加载
1 | /* |
es5和es6导入导出
1 | es5的引入也就是导入使用的是require(),es6中使用import...from...来实现导入 |
hasOwnProperty 和 in 的区别
1 | // in会判断对象原型链上是否存在该属性 |
按位非运算符 “~”
注:挺有意思哈哈ing…甜点
1 | /* ~ null 写法相当于 -(null + 1) |
JS阻塞DOM渲染的原因
文档加载过程中遇到JS文件,HTML文档会挂起渲染过程,不仅要等到文档中的JS文件加载完毕还要等待解析执行完毕,才会继续HTML的渲染过程。
原因:JS执行时可能会修改DOM结构,则JS执行完之前,后续所有资源的下载是没有必要的,这也是JS阻塞后续资源下载的根本原因
解决:script标签放在最下面,或者添加defer属性
CSS文件的加载不影响JS文件的加载,但是却影响JS文件的执行。JS代码执行前浏览器必须保证CSS文件已经下载并加载完毕。
CSS不会阻塞DOM解析,但是会阻塞DOM树渲染
DOM Tree和CSS Tree会组合成render tree
Set数据结构
用法:可以用于数组去重,但不会进行类型转换
1 | let array = [1, 1, '1', 1, 2, 3, 4, 4, 5, 3]; |
前端优化
减少页面加载时间
1 | 1、压缩css、js文件 |
web性能调试优化(达哥)
1 | /* 前端优化经验 可以了解下 |
网络知识
常识
// 很多情况下有些知识点虽然知道,但是自己却表示不清,还是掌握的有问题…
- IP地址的作用:标识当前网络(内网、外网)中,计算机的唯一身份
- 端口号:端口号和应用程序有关联,每一个应用程序,只能独占一个端口号
- 静态资源:无需数据交互,服务器直接把资源读取,并响应给客户端的资源(如:.js .css .jpg .html)
- 动态资源:一些资源在服务器上并没有现成的,需要服务器做一层处理,最后把处理的结果返回给客户端的资源(如:根据用户操作不同,返回不同的数据)