es6学习

### es6新特性
* 变量
* 函数
* 数组
* 字符串
* 面向对象
* Promise
* gengerator

### let 命令
* 作用域
* 重复定义
if(true){
var i = 10;
}
console.log(i)
if(true){
let i = 01
}
console.log(i)
switch(i){
case 0:
let i = 0;
case 1:
let i = 1;
}
### const
* 定义常量
      const i = 10;
      i=20;//报错
       const list = [1,2,3];
       list[1]=10;//数组元素可以变化,数组常量不可以改变,常量本身可以赋值,常量元素可以修改
### 进制转换
* 0b 二进制
* 0o 八进制
* ox 十进制
* num.toString(2) 转换为二进制
* num.toString(8) 转换为八进制
* num.toString(16) 转换为十六进制
### 箭头函数
标准函数
function name(){}
箭头函数
()=>{}
* 只有一个参数 ()可以不写
* 只有一个return 大括号可以省略
a => a*2
等价于
function(a){
  return a*2
}
### 函数参数
####参数扩展
function(a,b,...args){
      //args为数组,必须放在最后
}
* 收集剩余的参数,必须是最后一个参数
* ...args 展开数组等价于1 3 4 5 6
#### 默认参数
function(a,b=12,c=15)
如果不传参数则输出默认值
### 解构赋值
* 左右两边结构要一样
* 赋值必须合法
* 声明和赋值不能分开
### 数组
* map 映射
* reduce 汇总
* filter 过滤器
* forEach 迭代
#### map
let arr2 = arr.map(item=>{
if (item>4){
return "hhh"
}else {
return "vvvv"
}
})
console.log(arr2);
#### reduce
(tmp,item,index)
* tmp 上次计算的中间结果
* item 这次传的值
* index 第几次计算
#### filter
过滤
#### forEach
item index
* item 这次传的值
* index 第几次
### 字符串
#### 两个新方法  
* startsWith 以什么开头
* endsWith 以什么结束
#### 字符串模板
 let name = "zhangsan"   
 let mystr1 = `hello,${name}!`
### 面向对象
之前的对象
function User(name,pass){
this.name = name;
this.pass = pass;
}
User.prototype.ShowName = function(){}类的方法
User.prototype.ShowPass = fucntion(){}

es6面向对象
class User{
constructor(name,pass){
this.name = name;
this.pass = pass;
}
showName(){}
showPass(){}
}
* class关键字、构造器和类分开了
* class 里面加方法prototype
extends superclass
super();
posted @ 2018-08-15 21:05  _zhang_kai  阅读(111)  评论(0编辑  收藏  举报