H5的使用
1.语义化标签
<header></header>
<section></section>
<footer></footer>
<article></article>
2.新增标签
<audio></audio>
<video></video>
<progress></progress>
3. 本地存储
local storage
session storage
4.新增表单属性
//带过滤功能的列表 placeholder
<input type=text list=food placeholder="123"></input>
5.新增表单控件
email , url , date等
css3的使用
1.选择器
属性选择器,伪类选择器,后代选择器,子元素选择器
2.阴影
文字阴影:text-shadow
盒子阴影: box-shadow
3.动画:animation
4.二维三维变换:transform
5.圆角:border-radius
6.flex布局
ES6的使用
1.箭头函数的使用
2.let与const
3.promise
4.字符串模板
5.引入了class
6.set与map
7.新增symbol数据类型
8.新增字符串方法
str.repeat()
str.include(a,b)
9.扩展运算符
改变this指向:
.bind():返回一个函数,在修改指向的地方需要再次调用才会指向
.call(对象,参数1,参数2,…):直接执行
.apply(,对象,[参数1,参数2]):直接执行
promise:一种将异步代码写成同步形式的一种方案
promise原理:其内部有一个状态管理器,有3种状态,resolve时将promise状态改为resolved然后向then的成功回调函数传值,reject相反,状态只能由pending向单方向改变,改变后不可变调用后会返回一个新的promise对象所有可以使用链式调用
闭包
什么是闭包?
闭包是指有权访问另一个函数作用域中的变量的函数
构成条件
- 外层函数嵌套内层函数
- 内层函数引用外层函数的局部变量
- 将内层函数作为外层函数的返回值
闭包的原理:外层函数的活动对象无法被释放
函数在调用时会创建一个活动对象(内部包含当前函数的局部变量和函数)
闭包存在的问题:占内存
优点:能够重复使用,又不会造成全局污染
闭包的使用
指定某函数只能执行固定次数
function sayHi(){
console.log('hi)
}
function threeTimes(fn){
let times=0
return ()=>{
if(times++ < 3){
fn()
}
}
}
const newFn = threeTimes(sayHi)
newFn()
newFn()
newFn()
newFn()//该次函数执行后不再产生任何作用
http协议
状态码
101:客户要求服务器根据请求转换HTTP协议版本
200:请求成功
304:缓存问题
306:前一版本http中使用的代码,当前版本不在使用
400:错误请求,如语法错误
403:请求不允许
404:没有发现文件
405:用户在request-live字段定义的方法不被允许
500:服务器内部错误
503:服务器过载或暂停维护
505:服务器不支持或拒绝请求中的http版本
http协议
概念:超文本传输协议(Hyper Text Transfer Protocol)
HTTP是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie/session/websocket等来解决.
默认HTTP的端口号为80,HTTPS(更安全的http协议)的端口号为443。
常见请求头:
- Content-Type:发送给http服务器数据的类型
- Content-Length:发送给http服务器数据的长度
- Host:指定服务端主机和端口
- Expires:本地缓存过期时间
- Date:生成本地缓存的具体时间和日期
- Cookie:将cookie的值发送给HTTP 服务器
- Accept-Charset:浏览器接受的字符集
- Accept-Language:声明浏览器接受的语言
- Accept-Encoding:声明浏览器接收的压缩编码方法
- Connection:客户端与服务器之间的tcp连接控制
- Cache-Control:防止页面被缓存