ES6常用内容以下:
1.变量
2.函数
3.数组
4.字符串
5.面向对象
6.Promise
7.generator
8.模块化
变量
原ES5:
1.var声明变量,可以重复声明,可以覆盖声明;
2.无法限制修改;
3.没有块级作用域(语法块).
ES6:
1.let和const定义变量,不能重复声明;
2.let声明的是变量,可以修改;const声明常量,不可修改;
3.块级作用域,let和const定义的都是块级作用域;(注意:语法块指的是大括号包括的,不只是for或者if),块级作用域到底有什么用呢?举个栗子:
以上代码运行的结果想必大家都知道吧,那就是不管你点击谁alert的结果都是3,但是咱们想要的结果是啥?是点第几个就弹出几,对吧,所以呢ES6以前,解决办法是使用闭包,对吧,也就是下面这样:
使用另一个函数把他包裹起来
而ES6的解决办法就很简单了:
使用let代替var就OK
在打醒项目开发的时候,块级作用域对于合作开发来说效果更好,很好的避免了重复定义变量;
函数
1.箭头函数
标准函数:function fnName(){ }
箭头函数:( ) =>{ }
箭头函数需要注意:如果有一个参数,圆括号可以省略;如果只有一个return,{}可以省略;修正this指向
2.函数的参数
-参数的展开和扩展,
剩余参数(...name,必须放在最后),收集剩余的参数function show(a,b,...args)
展开数组: let arr =[1,2,3];...arr //1,2,3
默认参数:
解构赋值
1.左右两边结构必须一致;
2.右边必须是个合法的东西
3.声明和赋值不能分开(必须在一句话里完成) 比如:let [a,b]; [a,b] = [1,2];这样写的话一准报错,解构赋值解构赋值,说的就是解构并且赋值的,分开了就不好了......
数组
-map ----- 映射(一个对一个的)
-reduce ----- 汇总(一堆出来一个),参数是 (中间暂时值,item,index)
-filter ------- 过滤器(返回符合条件的)
-forEash ------ 循环,迭代(对每个itemj进行操作)
字符串
1.多了两个新方法(startsWith,endsWith)
2.字符串模板
字符串连接
直接把东西塞到字符串里面${变量名}
可以在``中间写,不用拼接,可以折行
面向对象
1.class关键字,与构造器分开
2.在class里面直接加方法
继承:
JSON
1.json对象
json格式变字符串: JSON.stringify(json)
json将字符串转为json格式: JSON.parse(str);
2.简写(即vue中的写法)
key和value一样的话写一个就可以;
方法:把:function一起删除
json标准写法:只能用双引号;所有的名字都必须用引号包起来
Promise(用同步的方式书写异步)
异步:每个操作之间没有关系,并行,即同时进行多个操作,但是会让代码更复杂;
同步:同一时间只能做一个事,一个接一个,串联,代码更简单;
generator生成器
普通函数---一路到底,
generator函数-----可以随时停止
基本用法:
关于 yield可以传参,可以返回值
异步操作:
-.基本的回调 $.ajax({ })
-.Promise(适合一次读一堆,没有先后顺序) 带逻辑的读取的话,还是比较麻烦 Promise.all([ ])
-.generator(有逻辑性的) runner
ES7,ES8预览(PS:已经写入了阮大大的书里面啦)
--数组 inclides数组是否包含某个东西
--数组 keys/values/entries(键值对)
for...of...
for...in...:数组遍历的是下标 key,json是key
for...of... :数组的值不能用于json
--字符串padStart(),padEnd()
--async wait(async详述)
以上,是常用的ES6语法,从入门到入门,所以也就只是了解而已.
路漫漫其修远兮......
网友评论