• ES6新增—新增循环、箭头函数


    5.新增循环:
    以前for循环,for in循环
    ES6新增循环:
    for of 循环:遍历(迭代,循环)整个对象,变现类似于for in 循环
    两者的区别:
    for in循环:既可以循环数组,又可以循环json

    循环数组:i代表数组的索引
    var arr1=['apple','banana','appel','orange'];
    for(var i in arr1){
    console.log(i); //0,1,2,3
    }
    循环json:name代表json的索引
    var json=[a:'apple',b:'pear',c;'orange'];
    for(var name in json){
    console.log(name); //a,b,c
    console.log(json[name]);
    }

    for of循环:可以循环数组,不可以循环json,该循环新增主要是为了循环map对象
    循环数组:(用的很少)
    1)只循环值value:
    var arr1=['apple','banana','appel','orange'];
    for(var value in arr1){
    console.log(value); //'apple','banana','appel','orange'
    }
    2)只循环索引key:
    for(var key of arr1.keys()){
    console.log(key); //0,1,2,3
    }
    3)值和索引都循环:
    for(var name of arr1.entries()){
    console.log(name); //0 apple,1 banana,2 appel,3 orange
    }


    循环map对象:
    map对象:和json相似,也是一种key-value的形式,但与json对象也不完全相同
    map对象是为了和for of循环而生的

    创建并设置json对象:
    var json={a:'apple',b:'pear',c:'banana',d;'orange'}
    获取json对象的某一项:json.a/json.b/json.c
    删除json对象的某一项:delete json.b
    循环json对象:使用for in 循环
    for(var i in json){
    console.log(json[i]);
    }

    创建map对象:var map=new Map();
    设置map对象的内容:map.set(key,value);
    获取map对象的内容:map.get(name);
    删除map对象的内容:map.delete(name);
    循环map对象:不能使用for in 循环
    map循环的简写:
    1)同时循环key和value
    for(var name of map){
    console.log(name); //这里的name既包含key,也包含value
    }
    2)只循环key,或者只循环value
    for(var [key,value] of map){
    console.log(key,value);
    console.log(key);
    console.log(value);
    }
    map循环的完整写法:
    1)同时循环key和value,默认的情况是调用了map.entries()
    for(var name of map){
    console.log(name);
    }
    等价于:
    for(var name of map.entries()){
    console.log(name);
    }
    2)只循环索引key
    for(var key of map.keys()){
    console.log(key);
    }
    3)只循环value
    for(var value of map.values()){
    console.log(value);
    }
    示例:
    var map=new Map();
    map.set('a','apple');
    map.set('b','pear');
    map.set('c','orange');
    map.set('d','banana');
    alert(map.get('a')); //apple
    map.delete('b'); //删除pear这一项
    for(var name of map){
    console.log(name); //a apple, c orange, d banana
    }
    等价于:
    for(var [key,value] of map){
    console.log(key,value); //a apple, c orange, d banana
    }

    -----------------------------------------------------------------------------

    6.箭头函数:
    ES6一切从简:新增的是箭头函数
    function show(a){return a;} var show=a=>a;
    function show(a,b){return a+b;} var show=(a,b)=>a+b;
    function show(){return 'welcome'} var show=()=>'wlecome';
    function show(){alert(1);} var show=()=>{alert(1);}
    注意在箭头函数中:
    this指向了window,并不是当前的执行对象,
    形参arguments,不能使用了

  • 相关阅读:
    VM安装CentOs7虚拟机后无法上网之解决方法
    vue中touchEnd事件和touchStart、touchMove获取坐标不一样,IOS绑定touch事件失效
    【个推独家】让你一次性掌握Neo4j性能优化秘籍的三大狠招
    【深度干货】异构数据的SQL一站式解决方案
    个推基于Jenkins的自动打包构建实践
    个推CTO叶新江专访| 数据智能的未来,是不提大数据但其无所不在的时代
    应用系统间数据传输方式总结(附相关概念解释)
    JavaScript中“&&”和“||”操作符的意义,深入理解和使用场景
    静态布局、自适应布局、流式布局、响应式布局、弹性布局等的概念和区别
    前端跨域问题相关知识详解(原生js和jquery两种方法实现jsonp跨域)
  • 原文地址:https://www.cnblogs.com/yufann/p/ES6-note3.html
Copyright © 2020-2023  润新知