什么是w3c标准:主要包括表现标准(css语言),结构标准(html),动作标准(JavaScript)
块级元素:center div dl(定义列表) 所有的h元素 hr(水平线) ol 有序列表 ul无序列表 li 列表项 p段落 table tr(表格中的行) form
行内元素:<b></b>粗体 big-大字体 br换行(是个单标签) em强调 i 斜体 img(属于单标签) input select strong粗体强调 u下划线 ins下划线标签 textarea多文本输入框 span元素
alt与title的区别:alt是替换文本,图片显示不出来用文本代替显示 title属性是提示文本,鼠标放到图片上被显示
相对路径:路径是相对的 如./ ,../, /a/b
绝对路径:是一个完整的路径 如c:/a/b/d,或者一个完整的网络地址
注意a标签:如果href里面地址是一个文件或者压缩包,点击会下载这个文件也就是下载链接,是#就是空链接。可以跳转内部链接也可访问外部链接。 其中target属性是默认是_self跳链接时不打新窗口,_blank是打开新窗口,还有就是锚点链接 当我们点击链接是可以快速的定位到页面中的某个位置锚点链接 <a href='#name'>点击a跳到p的地方 <p id='name'>
表格table:表头thead 表身tbody
表格的细线边框:https://api.bilibili.com/x/note/image?image_id=61660
自定义列表: dl dt dd https://api.bilibili.com/x/note/image?image_id=46346
表单元素:注意属性值 input框https://api.bilibili.com/x/note/image?image_id=46346
css字体:https://api.bilibili.com/x/note/image?image_id=47164
装饰文本:https://api.bilibili.com/x/note/image?image_id=47177
文本缩进:https://api.bilibili.com/x/note/image?image_id=47187
文本属性:https://api.bilibili.com/x/note/image?image_id=56222
链伪类选择器:https://api.bilibili.com/x/note/image?image_id=59766
focus伪类选择器:https://api.bilibili.com/x/note/image?image_id=59769
复合选择器总结https://api.bilibili.com/x/note/image?image_id=59771
背景图片:背景图片的位置是相对整个h盒子来说的
css优先级:https://api.bilibili.com/x/note/image?image_id=61418
优先级计算:https://api.bilibili.com/x/note/image?image_id=61428
盒子模型的边框:https://api.bilibili.com/x/note/image?image_id=61569
盒子外边距问题:https://api.bilibili.com/x/note/image?image_id=63118
注意!!行内块元素与行内元素的居中对齐方式为 再父盒子里设置text-aligin:center 不能通过margin:0 auto设置
相邻块级元素垂直外边距的合并:https://api.bilibili.com/x/note/image?image_id=63124
嵌套元素垂直外边距的塌陷:https://api.bilibili.com/x/note/image?image_id=63157
注意:注意:外边距合并父元素的margin-top值不一定非要设置了才会与子元素外边距发生合并,默认为0,此时就会发生合并合并到父元素上如图
圆角边框:https://api.bilibili.com/x/note/image?image_id=64929
盒子阴影:(25条消息) CSS3box-shadow属性详解_巧克力很苦的博客-CSDN博客_box-shadow
盒子阴影案例https://api.bilibili.com/x/note/image?image_id=107777
文字阴影(与盒子阴影相同):https://api.bilibili.com/x/note/image?image_id=64959
浮动元素的特性:https://api.bilibili.com/x/note/image?image_id=64998
为什么要清除浮动:https://api.bilibili.com/x/note/image?image_id=65250
清除浮动的方法:https://api.bilibili.com/x/note/image?image_id=65275
https://api.bilibili.com/x/note/image?image_id=65272
清除浮动方法:伪元素法https://api.bilibili.com/x/note/image?image_id=65273
https://api.bilibili.com/x/note/image?image_id=65274
如果想避免浮动带来影响,要么给盒子添加高度要么用上面的方法清除浮动。
导航栏注意点:https://api.bilibili.com/x/note/image?image_id=66116
注意!!
注意: 浮动的盒子不会有外边距合并的情况!!!
注意:行高可以继承,比如爷爷的可以继承给儿子和孙子。
注意:当图片的宽度跟盒子不一样宽时,此时要将图片的宽度设为100%跟盒子一样宽
注意:子盒子如果都浮动则其父盒子的高度为0,会对下面的盒子有影响。
定位总结:https://api.bilibili.com/x/note/image?image_id=67587
绝对定位的盒子居中:https://api.bilibili.com/x/note/image?image_id=67592
绝对定位和固定定位:属于脱标,脱标的盒子不存在外边距合并的情况,并且与浮动类似,都会变成行内块元素
注意:绝对定位和固定定位会完全压住下面的标准流盒子,但浮动会压住盒子但不会压住盒子里的如图:https://api.bilibili.com/x/note/image?image_id=67610
元素显示与隐藏(visibity):visibility:visible元素可见 visibility:hidden隐藏但占位置 隐藏不占位置 display:none
overflow溢出:https://api.bilibili.com/x/note/image?image_id=67672
注意!!背景图的位置是相对盒子的,比如 background-position:10px -10px 是背景图片往盒子的右边去10px 往盒子的上面去10px ,网页坐标就是这样。像定位什么的距离是指与某个参考物的距离 比如 top:10px是指距离上面要有10px的距离
css三角形的制作(必须保证有一个上或下边框和左或右边框其中的两个边框才能形参三级行,其中上和下是绝对高度的,只是三角的朝向是对立的,左和右是绝对宽度的朝向是对立,想要其中的三角形那就其他变颜色都设置位透明想要的边三角形设置颜色即可):https://api.bilibili.com/x/note/image?image_id=67700
鼠标样式:https://api.bilibili.com/x/note/image?image_id=67773
vertical-align:https://api.bilibili.com/x/note/image?image_id=67776
注意图片底部留白问题:https://api.bilibili.com/x/note/image?image_id=67781
溢出的文字省略号显示:https://api.bilibili.com/x/note/image?image_id=67782
注意:如果想要行内块元素或者行内元素居中对齐只需要在父盒子中设置text-align即可
position的absolute与fixed共同点与不同点:
共同点: 改变行内元素的呈现方式,display被置为block 让元素脱离普通流,不占据空间 默认会覆盖到非定位元素上
不同点: absolute的”根元素“是可以设置的 fixed的”根元素“固定为浏览器窗口。当你滚动网页,fixed元素与浏览器窗口之间的距离是不变的。
html5新特性总结:https://api.bilibili.com/x/note/image?image_id=67828
html5新特性(视频标签):https://api.bilibili.com/x/note/image?image_id=67831
html5新特性(视频标签属性)https://api.bilibili.com/x/note/image?image_id=67833
html5新特性音频标签:https://api.bilibili.com/x/note/image?image_id=68251
注意:html5与css3样式对浏览器有兼容问题IE9+才能用,更适合移动端。
多媒体标签总结:https://api.bilibili.com/x/note/image?image_id=68250
html新增的input类型https://api.bilibili.com/x/note/image?image_id=68254
html5新增的表单属性https://api.bilibili.com/x/note/image?image_id=68268
css3新特性:https://api.bilibili.com/x/note/image?image_id=68274
css3新特性属性选择器:https://api.bilibili.com/x/note/image?image_id=68282
如下案例https://api.bilibili.com/x/note/image?image_id=68297
css3结构伪类选择器:https://api.bilibili.com/x/note/image?image_id=69700
css3结构伪类选择器:关于n的说法https://api.bilibili.com/x/note/image?image_id=69697
第二中结构为类选择器(推荐):https://api.bilibili.com/x/note/image?image_id=69701
区别:https://api.bilibili.com/x/note/image?image_id=69708
总结:https://api.bilibili.com/x/note/image?image_id=69715
css3伪元素选择器:https://api.bilibili.com/x/note/image?image_id=69755
注意伪元素属于行内元素,想要设置宽高要转化行内块或者块内元素
网罩案例https://api.bilibili.com/x/note/image?image_id=69767
css3新特性盒子模型:https://api.bilibili.com/x/note/image?image_id=69772
css3新特性过渡:https://api.bilibili.com/x/note/image?image_id=69835
案例https://api.bilibili.com/x/note/image?image_id=69837
2d转换值translatehttps://api.bilibili.com/x/note/image?image_id=71281
2d转换之rotatehttps://api.bilibili.com/x/note/image?image_id=71296
2d转换总结:https://api.bilibili.com/x/note/image?image_id=71600
3d旋转!!!多复习
css3总结https://api.bilibili.com/x/note/image?image_id=72622
css中link和@import的区别
link属于HTML标签,而@import是CSS提供的页面被加载的时,link会同时被加载(并行),而@import引用的CSS会等到页面被加载完再加载(串行)
import只在IE5以上才能识别,而link是HTML标签,无兼容问题
link方式的样式的权重 高于@import的权重.
animation与transition区别
animation 可以用 name 设置动画的名称,用 duration 设置动画完成的周期,用 timing-function 设置动画的速度曲线,delay 设置动画什么时候开始,iteration-count 设置动画播放的次数,direction 规定下一个周期是否逆向的播放,play-state 动画是否正在进行或者暂停,fill-mode 设置动画停了之后位置什么状态
transition 用 property 去设置过渡效果的属性名称,duration 设置过渡效果的周期,timing-function 规定速度效果的速度曲线,delay 设定过渡效果什么时候开始;
区别:
1、transition 是过渡,是样式值的变化的过程,只有开始和结束;animation 其实也叫关键帧,通过和 keyframe 结合可以设置中间帧的一个状态;
2、animation 配合 @keyframe 可以不触发时间就触发这个过程,而 transition 需要通过 hover 或者 js 事件来配合触发;
3、animation 可以设置很多的属性,比如循环次数,动画结束的状态等等,transition 只能触发一次;
4、animation 可以结合 keyframe 设置每一帧,但是 transition 只有两帧;
seo3大优化:https://api.bilibili.com/x/note/image?image_id=69979
js面试:
- 通过ID获取(getElementById)
- 通过name属性(getElementsByName)
- 通过标签名(getElementsByTagName)
- 通过类名(getElementsByClassName)
- 通过选择器获取一个元素(querySelector)
- 通过选择器获取一组元素(querySelectorAll)
- 获取html的方法(document.documentElement)
什么是伪数组:伪数组:就是长得跟数组差不多,有索引有长度,但是不能使用数组的操作方法,可自定义的部分,其实支持中文,但是及其不推荐使用
鼠标经过与离开事件onmouseover与onmouseout
全选框https://api.bilibili.com/x/note/image?image_id=75939
dom删除事件:https://api.bilibili.com/x/note/image?image_id=76154
获取元素:const a=document.getelementById(#id)
const a=document.getelementByClassName(.class)
const a=document.queryselector(class/id/element)
const a=document.queryselectorAll(class/id/element)得到是数组
getElementsByName得到元素数组
添加元素:node.appendChild(child)加到末尾
node.insertBefore()加到前面
node.removeChild(child)删除节点
复制节点:node.cloneNode()返回复制的节点node
创建节点:const a=document.createElement(div)
传统注册事件与监听注册区别https://api.bilibili.com/x/note/image?image_id=76147
事件循环:https://api.bilibili.com/x/note/image?image_id=76351
事件流:事件发生时会在元素节点之间按照待定的顺序传播,这个传播过程即为事件流
事件冒泡:事件开始时由最具体的元素接收,然后逐级向上传播到dom最顶层节点的过程
onclick与attachEvent只能得到冒泡阶段,阻止冒泡是在添加的监听事件设置第三个参数为true
阻止事件冒泡:
e.stopPropagation()或者e.cancelBubble=true
事件捕获:由dom最顶层节点开始,然后逐级向下传播到最具体的元素接收
事件委托:也称事件代理:不是每个子节点单独设置事件监听器,而是事件监听器设置在父结点上,然后利用冒泡原理影响设置每个子节点。(只操作了一次dom,提高了程序性能)
bom和dom的区别:https://api.bilibili.com/x/note/image?image_id=76247
js执行机制(注意关键词事件循环)https://api.bilibili.com/x/note/image?image_id=76351
js面试:
基本数据类型:Number(int float) Boolean String Undefined(声明了变量但没有给值) Null 声明了变量a为空值
1.typeof和instance of 检测数据类型有什么区别?
相同点: 都常用来判断一个变量是否为空,或者是什么类型的。
不同点:
- typeof 返回值是一个字符串,用来说明变量的数据类型返回的是字符串
- instanceof 用于判断一个变量是否属于某个对象的实例,返回的是布尔值
opacity:0,该元素隐藏起来了,但不会改变页面布局,并且,如果该元素已经绑定了一些事件,如click事件也能触发。
visibility:hidden,该元素隐藏起来了,但不会改变页面布局,但是不会触发该元素已经绑定的事件。
display:node, 把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素删掉。
z-index:-1
5.==和===区别是什么?
==返回一个布尔值;相等返回true,不相等返回false; 允许不同数据类型之间的比较; 如果是不同类型的数据进行,会默认进行数据类型之间的转换; 如果是对象数据类型的比较,比较的是空间地址
=== 只要数据类型不一样,就返回false
程序里面的==号 默认会转换数据类型,会把字符串型的数据转换为数字型,程序里面的全等===要一模一样,要求两侧的值还有数据类型完全一致才可以
数据类型转化:转换为字符串:num.toString(),还有隐式转换 num+‘字符串’ 强制转换String()
转为数字型:parseIint(string)函数 parseFloat(string)转换为浮点型 Number(string)强制转换 隐式转换:‘12’-0
转换为布尔型:https://api.bilibili.com/x/note/image?image_id=73269
逻辑与:https://api.bilibili.com/x/note/image?image_id=73298
逻辑或:https://api.bilibili.com/x/note/image?image_id=73300
return与continue与break区别https://api.bilibili.com/x/note/image?image_id=74376
new关键字做了什么:https://api.bilibili.com/x/note/image?image_id=75020
遍历对象:https://api.bilibili.com/x/note/image?image_id=75028
mdn:MDN Web Docs提供开放网络(Open Web)技术有关的信息,包括用于网站和渐进式网络应用的 HTML、CSS 和 API。
超文本标记语言:所谓超文本,是因为它可以加入图片、声音、动画、影视等内容
获取时间戳:https://api.bilibili.com/x/note/image?image_id=75251
自增运算:https://api.bilibili.com/x/note/image?image_id=73286
变量提升和函数提升:https://api.bilibili.com/x/note/image?image_id=74422
案例如下https://api.bilibili.com/x/note/image?image_id=74430
案例如下:https://api.bilibili.com/x/note/image?image_id=74430
作用域链:https://api.bilibili.com/x/note/image?image_id=74409
注意!!给事件加回调:div.οnblur=function(){} 直接失去焦点 z直接调用这个函数blur()
es6
原型对象注意点:https://api.bilibili.com/x/note/image?image_id=78735
原型链:https://api.bilibili.com/x/note/image?image_id=78744
原型对象里的this指向:https://api.bilibili.com/x/note/image?image_id=78927
bind(),apply(),call()用法区别https://api.bilibili.com/x/note/image?image_id=79339
bind()典型用法:https://api.bilibili.com/x/note/image?image_id=79313
闭包的作用:
三、闭包作用
作用1:隐藏变量,避免全局污染
作用2:可以读取函数内部的变量
同时闭包使用不当,优点就变成了缺点:
缺点1:导致变量不会被垃圾回收机制回收,造成内存消耗
缺点2:不恰当的使用闭包可能会造成内存泄漏的问题
这里简单说一下,为什么使用闭包时变量不会被垃圾回收机制收销毁呢,这里需要了解一下JS垃圾回收机制;
JS规定在一个函数作用域内,程序执行完以后变量就会被销毁,这样可节省内存;
使用闭包时,按照作用域链的特点,闭包(函数)外面的变量不会被销毁,因为函数会一直被调用,所以一直存在,如果闭包使用过多会造成内存销毁。
延申了函数变量的作用范围:https://api.bilibili.com/x/note/image?image_id=79459
闭包函数:(只要一个作用域访问了另外一个作用域的局部变量此时就有闭包的产生)
闭包的经典用法:https://api.bilibili.com/x/note/image?image_id=79467
数组内置对象的方法:
一、数组相关的方法
(1):遍历forEach()方法
forEach(function(v,i,arr){})
1:forEach方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组
结果:最后返回的是原数组
需求:给ul下面的li 点击li添加背景色,其他兄弟去掉底色
<ul>
<li class="active">1</li>
<li>2</li>
<li>3</li>
</ul>
let lis = document.querySelectorAll("ul li");
lis.forEach(function (v, i, arr) {
lis[i].addEventListener("click", function () {
lis.forEach(function (v, i) {
lis[i].className = ""
})
this.className = "active";
})
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(2):遍历map()方法
map(function(v,i,arr){})
1:map方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,对元数组中的元素进行修改,修改后经过回调函数处理,把返回值当做元素放入新数组中
结果:最后返回的是新数组
需求:让数组元素都 *2 输出型数组
let arr = ["1", "2", "3"];
let newArr = arr.map(function (v, i, arr) {
return v * 2;
})
console.log(newArr); //["2","4","6"]
1
2
3
4
5
forEach()和map()方法的区别
1:forEach方法遍历数组,返回的是原数组
2:map方法遍历数组,返回的是新数组,就是针对原数组中的元素进行操作处理后,回调函数的返回值作为元素放入新数组中。
(3):遍历filter()方法
filter(function(v,i,arr){})
1:filter方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,刷选出符合的条件的元素,放入新数组中
结果:最后返回的是新数组
需求:过滤掉工资低于3000的工资(不包含3000)
let arr = ["2000", "3000", "5000", "900"];
let newArr = arr.filter(function (v, i, arr) {
return v >= 3000;
})
console.log(newArr); //["3000","5000"]
1
2
3
4
5
(4):遍历some()方法
some(function(v,i,arr){})
1:some方法里面的参数为回调函数:
2:回调函数内部有着三个参数,第一个为要遍历的值,第二个为索引号,第三个为原数组
3:作用:
作用1:用于遍历数组,根据筛选的条件,若是符合条件,则返回值为true
结果:最后返回的是布尔值
注意:假如你根据数组查询到商品的时候,由于some方法返回的布尔值,因此需要在外面定义一个空数组,用于接收数据(需要在return前面接收)
// 注意点:找到第一个元素的时候,直接终止循环
需求:查询数组中是否含有该元素
let arr = ["1", "3", "5"];
let flag = arr.some(function (v, i, arr) {
return v == 3;
})
console.log(flag); //true
1
2
3
4
5
filter()和some()方法的区别
1:filter方法遍历数组,根据条件筛选出元素,然后放入到新数组中,返回的是新数组
2:some方法遍历数组,根据条件遍历原数组中的元素,符合条件的则返回的true,没错返回的是布尔值。值得注意的是,some方法效率更高,因为它一找到符合条件的,直接结束循环。
深拷贝:https://api.bilibili.com/x/note/image?image_id=80323
浅拷贝:https://api.bilibili.com/x/note/image?image_id=80199
浅拷贝过来的属性对象只拷贝过来它的地址改变属性对象的内容会把原对象的属性对象内容也一起改变
新知识大无语!!for in居然也可以遍历数组因为数组Array也属于object(数组的数据类型既是数组也是对象)。平时见它只遍历对象,所以上述案例中我们必须先判断数组如果先判断是否是对象则就会把Array当成对象来判断。
正则表达式:https://api.bilibili.com/x/note/image?image_id=80340
量词符:https://api.bilibili.com/x/note/image?image_id=80358
举例:https://api.bilibili.com/x/note/image?image_id=80362
箭头函数:展开运算符:
let变量https://api.bilibili.com/x/note/image?image_id=80404
let面试题:https://api.bilibili.com/x/note/image?image_id=80409
var const let 区别https://api.bilibili.com/x/note/image?image_id=80409
数组形式解构赋值:https://api.bilibili.com/x/note/image?image_id=80483
对象解构赋值:https://api.bilibili.com/x/note/image?image_id=80484
扩展运算符:https://api.bilibili.com/x/note/image?image_id=80512
用扩展运算符合并数组:https://api.bilibili.com/x/note/image?image_id=80513
array内置对象的扩展:https://api.bilibili.com/x/note/image?image_id=80530
不定量参数:https://api.bilibili.com/x/note/image?image_id=80506
cookie域session和localstorage区别:
相同点:都是保存在浏览器端,且同源的。
不同点:
cookie数据始终在同源的http请求中携带,即cookie在浏览器和服务器间来回传递。
而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。 存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据。
sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的
this关键字:
全局函数:
isNaN() | 检查某个值是否是数字。 |
Number() | 把对象的值转换为数字。 |
parseFloat() | 解析一个字符串并返回一个浮点数。 |
parseInt() | 解析一个字符串并返回一个整数。 |
String() |
promose(重点!!)
this指向: 普通函数非严格模式下调用的时候指向于Window,严格模式指向为undefind
构造函数调用this指向于实例对象
对象方法调用this指向与该方法所属的对象
事件绑定方法this指向于绑定事件对象
定时器函数this指向于Window
自执行函数中的this永远指向window
箭头函数没有this,this是指向于外面的一层,如果没有则指向Window
数组如何去重:
for in for of区别:
for-in总是得到对象的key或数组、字符串的下标。
for-of总是得到对象的value或数组、字符串的值,另外还可以用于遍历Map和Set。
遍历对象的方法有:for in for of object.keys(obj)返回一个数组
静态方法:加上static关键字 不会被实例继承 直接被类调用 静态方法里面this的指向指的是类的本身。
子类可以继承父类的静态方法:https://api.bilibili.com/x/note/image?image_id=108156
注意:注意!类.属性可直接添加类中的共有属性。子类不能继承父类中的静态方法
首先抛出一个概念: super这个关键字,既可以当作函数使用,又可以当作对象使用
第一种情况:super作为函数时,代表父类的构造函数
ES6要求,子类的构造函数,必须执行一次super
函数
class A {}
class B extends A {
constructor() {
super();//子类的构造函数,必须执行一次super函数,代表父类的构造函数
}
}
注意:虽然super代表父类的构造函数,但此时返回的时B的实例,即super内部的this指的是B的实例,因此super()
相当于 A.prototype.constructor.call(this)
es6新特性有哪些:es6类没有变量提升,先定义后使用
let定义块级作用域变量 没有变量的提升,必须先声明后使用 let声明的变量,不能与前面的let,var,conset声明的变量重名
const 定义只读变量 const声明变量的同时必须赋值,const声明的变量必须初始化,一旦初始化完毕就不允许修改 const声明变量也是一个块级作用域变量 const声明的变量没有“变量的提升”,必须先声明后使用 const声明的变量不能与前面的let, var , const声明的变量重 const定义的对象\数组中的属性值可以修改,基础数据类型不可以
ES6可以给形参函数设置默认值
数组之前加上三个点(...)展开运算符
数组的解构赋值、对象的解构赋值
箭头函数的特点 箭头函数相当于匿名函数,是不能作为构造函数的,不能被new 箭头函数没有arguments实参集合,取而代之用...剩余运算符解决 箭头函数没有自己的this。他的this是继承当前上下文中的this 箭头函数没有函数原型 箭头函数不能当做Generator函数,不能使用yield关键字 不能使用call、apply、bind改变箭头函数中this指向 Set数据结构,数组去重
状态码:
2开头(成功)
200 : 代表请求成功;
3开头(重定向)
301 : 永久重定向;
302: 临时转移
304 : 读取缓存 [表示浏览器端有缓存,并且服务端未更新,不再向服务端请求资源]
307:临时重定向
4开头(客户端)
400 :数据/格式错误
401: 权限不够;(身份不合格,访问网站的时候,登录和不登录是不一样的)
404 : 路径错误,找不到文件
5开头(服务器)
500 : 服务器的问题
503: 超负荷
vue时间修饰符:https://api.bilibili.com/x/note/image?image_id=87296