ES6详细讲解(二)

       今天接着学习ES6!!!接着上次来学习

第五个知识点:(...)拓展运算符

         es5中赋值数组的方法:

               a)通过for循环

       

通过数组方法pop()方法来验证复制的数组时候受影响


              b)数组中的方法:Array.from();

                          

    c) es6中拓展运输符复制数组的方法


var arr2 = [...arr];

拓展运输符还可以配合数组使用:如下:


。。。args相关于arguments,但是arguments不能复制数组

第六个知识点:es6中的for of循环

    for of循环: 可以循环数组,不能循环json

                            真正的目的为了循环map对象

                       遍历(迭代,循环)整个对象,表现类似for in


第七个知识点:Map对象

        和json相似,也是一种key-value形式

         Map对象为了和for of循环配合而生的


var map = new Map();

设置:

map.set(name,value);

获取:

map.get(name);

删除:

map.delete(name);


遍历map:

不能使用for in,没有效果



后台没有输出,没有反应

for(var name of map){

console.log(name);  // a,apple  b,banana

}

for(var [key,value] of map){

    console.log(key,value); // key value

}

原来就是:

for(var name of map.entries()){         //entries()就是map的整体

console.log(name);  // a,apple  b,banana

}

只是循环key

for(var key of map.keys()){    //只是循环key

console.log(key);

}

for(var value of map.values()){    //只是循环value

console.log(value);

}

for....of也可以循环数组:

只循环值:

for(var value of arr){}

只循环索引:

for(var key of arr.keys()){}

索引和值都循环:

for(var some of arr.entries()){}

第八个知识点:箭头函数

之前:

function show(){

Alert(1);

}

show();

function show(a){

return a;

}

show(12)

function show(a,b){

return a+b;

}

show(12,5);

现在:箭头函数:

=>

var show=a=>a;                 function show(a){return a};

var show=(a,b) =>a +b;           function show(a,b){return a+b};

var show=()=>’welcome’;         function show(){return‘welcome’}

var show=()=>{                 function show(){ alert(1);   }

Alert(1);

}

注意:

This问题,this指向window

Arguments,不能使用了;

第九个知识点:面向对象

对象语法简洁化

                  单体模式:

                             Json

                              var name=‘abb’;

                              var age = 101;

                                var person={

                                                  name,

                                                   age,

                                                showName(){

                                                          return this.name;

                                                                     },

                                                   showAge(){

                                                         return this.age;

                                                                    }

                                                     }

                                           Alert(person.showName());

es5中的面向对象

function Person(name,age){    //类,构造函数

this.name = name;

this.age = age;

}

Person.prototype.showName=function(){

return this.name;

};

Person.prototype.showAge=function(){

Return this.age;

}

var p1 = new Person(‘abc’,10);

Alert(p1.showName());

ES6类class

构造函数constructor生成完实例以后,自己就执行的

class Person{    //类

                    constructor(name,age){

                                           this.name=name;

                                           this.age  =age;

                                                              }

                              showName(){

                                              return this.name;

                                                  }

                                 showAge(){

                                                 return this.age;

                                                   }

                                     }

                     var p1 = new Person(‘aaa’,10);

                     var p2 = new Person(‘bbb’,20)

                         Alert(p2.showName==p1.showName); //true

                       Alert(p1.name);  //aaa

                    Alert(p1.showName()); //aaa

第十个知识点:继承

之前:子类.prototype = new父类();

ES6 :

class Worker extends Person{

                        constructor(){

                                                super()  //调用父级构造

                                              }

                          showJob(){

                                            return‘你的工作是暂无的’;

                                          }

                                        }

                        var w1 = new Worker(‘mmm’,56)

                            Alert(w1.showJob());


  es6之二,到这里就结束了,还有最有一期的叙述,喜欢的朋友可以继续关注!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,689评论 0 6
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,807评论 2 17
  • 进入职场的你,还不知道如何使用番茄工作法吗?那你可得抓紧… 今天来教大家使用番茄工作法。 看这本书之前,我对番茄钟...
    姚小白少校阅读 623评论 0 1
  • 一 “快快起床啊!看完日出还要去大街东头那边看那棵神树的。晚了的话人又很多。” “唔嗯……” “快!动!”啪,小希...
    成灿_呐阅读 380评论 4 0
  • 之前学习到的是对数据库用户进行权限管理,可以对数据库中的表进行删除,或修改,如果非常多的用户,管理的很多的数据库,...
    肉肉要次肉阅读 1,712评论 0 0