ES6

作者: Allen张小源 | 来源:发表于2017-10-03 23:12 被阅读0次

var

1.可以重复声明

2.无法限制修改

3.没有块级作用域

let 不能重复声明,变量-可以修改,块级作用域

const 不能重复声明,变量-不可以修改,块级作用域

箭头函数

function 名字(){

}

()=>{}

1.如果只有一个参数 ()可以省

2.如果只有一个return,{}可以省

let show=a=>a*2

arr.sort((n1,n2)=>n1-n2)

函数的参数

1.参数的扩展和数组展开

(1)收集剩余的参数 

function show(a,b,...args){}

(2)数组的展开

let arr=[1,2,3];

show(...arr);

function show(a,b,c){

alert(a);alert(b);alert(c)

}

let a=[1,1,1]

let b=[2,3,4]

let c=[...a,...b]

2.默认参数

function a(b=3){}

解构赋值

1.左右两边结构一样

2.右边是个东西

3.声明和赋值放一起写

let [a,b,c]=[1,2,3]

let {a,c,d}={a:12,c:5,d:6}

let [{a,b},[n1,n2,n3],num,str]=[{a:12,b:5},[12,3,4],5,'ddf']

数组:

map 映射  一个对一个

let arr=[1,2,3]

let result =arr.map(function(item){

return item*2

})

let result =arr.map(item=>item*2)

let score=[19,34,56,75,43]

let result= score.map(item =>item>=60?'及格':'不及格')

reduce 汇总  一堆出来一个

let arr=[12,23,4,5]

let result=arr.reduce(function(tmp,item,index){

tmp 中间结果

item 第几项的值

index 第几项

})

求平局

let arr =[23,34,54,45]

let result=arr.reduce(function(tmp,item,index){

if(index!=arr.length-1){
    return tmp+item;

}else{

      return(tmp+item)/arr.length

}

})

alert(result)

filter 过滤器

let arr=[12,32,34,99,45]

let result =arr.filter(item=>item%3==0)

alert (result)

let arr=[

{title:'xie',price:74},

{title:'wazi',price:734344},

{title:'kuzi',price:724}

];

let result=arr.filter(json=>json.price>=10000);

console.log(result)

forEach 迭代

let arr=[12,3,4,5]

arr.forEach((item,index)=>{

alert(index+':'+item);

});

字符串

1.startsWith()

2.endsWith()

布尔值

3 字符串模板

let title='标题';

let content='内容';

let str=`<div>

<h1>${title}</h1>

<p>${content}</p>

</div>`;

1.可以直接把东西放在字符串里面 ${东西}

2.可以折行

面向对象

class User{

constructor(name,pass){

this.name=name;

this.pass=pass;

}

showName(){

   alert(this.name);

}

showPass(){

    alert(this.pass)

}

}

var u1=new User('dsfs','22')

u1.showName;

u2.showPass;

1.class关键字 构造器和类分开

2.class里面直接加方法

继承:

class VipUser extends User{

    constructor(name,pass,level){

    super(name,pass);

     this.level=level;

}

     showLevel(){

         alert(this.level);

      }

}

var v1=new VipUser('sss','22','3')

json

1.JSON.stringify

JSON.parse

let str='{"a":12,"b":5,"c":"aaa"}';

let json=JSON.parse(str)   

let json={a:12,b:5};

let str='http://baidu.com/path/user?data='+encodeURIComponent(JSON.stringify(json));

2简写

名字和值(key和value)一样的 留一个就行

let a=2;

let b=3;

let json={a,b,c:123}

方法: show:function(){...}

show(){...}

:和function一块删

promise

1.let p=new Promise(function(resolve,reject){

$.ajax({

url:'data/1.txt',

dataType:'json',

success(arr){

resolve(arr);

},

error(err){

reject(err)

}

})

})

p.then(function(arr){

alert('成功'+arr)

},function(err){

alert('失败'+err)

});

2.function createPromise(url){

return new Promise(function(resolve,reject){

$.ajax({

url

dataType:'json',

success(arr){

resolve(arr);

},

error(err){

reject(err);

}

})

})

}

Promise.all([

createPromise('data/1.txt'),

createPromise('data/2.txt')

]).then(function(arr){

let [res1,res2]=arr;

},function(){

alert('error')

})

3.

Promise.all([

$.ajax({url:'data/1.txt',dataType:'json'}),

$.ajax({url:'data/2.txt',dataType:'json'})

]).then(function(results){

let [arr,json]=results;

},function(){

alert('error')

})

Promise.all([$.ajax(),$.ajax()]).then(results=>{ok

},error=>{error})

generator 可停函数

function *show(){

alert('a');

yield;

alert('b');

}

let genObj=show();

genObj.next();

genObj.next();

yield

1.function *show(num1,num2){

alert(`${num1},${num2}`);//99,88

alert('a');

let a=yield;

alert('b');

alert(a);// 5

}

let gen=show(99,88);

gen.next(12);//没法给yield传参

gen.next(5);

2.function *show(){

alert('a');

yield 12;

alert('b');

return 55;

}

len gen=show();

len res1=gen.next();

console.log(res1);//{value:12,done:false}

let res2=gen.next();

console.log(res2);//{value:55,done:false}


相关文章

网友评论

      本文标题:ES6

      本文链接:https://www.haomeiwen.com/subject/dvgmsxtx.html