• ES6基础-6


    函数

        //函数默认参数使不允许由同名参数
        function fn(name,name,age){
            //同名后边参数覆盖前面的
            console.log(name,name);
        }
        fn("webcyh",21);
        function test(name,age=21){
            console.log(name,age);
        }
        //当传递的参数不为空或者undefined则有效果
        test("webcyh",undefined);
        test("webcyh",null);
        //不定参数
        function test2(name,...values){
            console.log(name);
            //不定参数返回的是数组
            console.log(values);
        }
        test2("webcyh",1,2,2,2,2,2);
        //箭头函数 自执行 当箭头函数没有参数或者参数多个的时候需要括号
        //当函数只有一条语句且有返回值 可以不需要花括号
        //当返回值为对象 需要添加()
        (()=>console.log("hello"))();
    
        var f = v=>v;
    
        console.log(f(1));
        //箭头函数 没有 this、super、arguments 和 new.target 绑定。
        //this指向在外边的this 而且不能作为构造函数 不能使用new
        console.log((()=>({name:"webcyh",age:21}))());
        function test3(){
            setInterval(()=>{
                console.log(this.a);
            },1000);
        };
        test3.call({a:"webcyh"});

    在这里this指向外边的this好处

     this 对象一直很令人头大,回调函数,经常看到 var self = this 这样的代码,为了将外部 this 传递到回调函数中,那么有了箭头函数,就不需要这样做了,直接使用 this 就行

    const test = {
            age:21,
            getAge:()=>console.log(this.age)
        }
        const test1 = {
            age:21,
            getAge(){
                console.log(this.age);
            }
        }
        var age = 1;
        test.getAge();
        test1.getAge();
        //注意在监听点击事件的时候可能导致无法绑定到相应的元素上面

    迭代器

    //迭代器lterator 这是一种新的遍历机制
        //有两个核心概念
        //迭代器是一个统一的接口方便数据结构被便捷访问
        //用于变量数据结构元素的指针
        var str = "hello world!";
        var t = str[Symbol.iterator]();
        console.log(t.next());
        console.log(t.next());
        console.log(t.next());//t.next()返回一个对象,里边done为false说明还没遍历完
        for(let t of str){
            console.log(t);
        }
        
        //可迭代的类型有 set map 数组 字符串 和 dom元素 但是普通的Object对象无法进行迭代输出 类数组对象无法直接迭代需要转换成普通的数组
         var obj = {length:2,0:"webcyh",1:21};
        // for(let item of obj){
        //     console.log(item);
        // }
        //以上会报错
        for(let item of Array.from(obj)){
            console.log(item);
        }
        //let 和var
        for(var i1 of [1,2,3]){
    
        }
        console.log(i1);
        for(let i2 of [1,2,3]){//使用let  const 每次迭代均为创建一个存储空间 均能保证迭代在内部作用域
        }
        console.log(i2);

  • 相关阅读:
    Postmanapi接口自动化局限性
    爱加密加固产品原理分析_定制版
    白话文理解DCT离散余弦变换
    mysql like使用预编译
    【Jenkins】jenkins控制台/生成的日志文件 中文乱码
    【Python】连接Linux并执行命令
    【Java】时间转换(可用于计算耗时场景)
    【Java】List去重 / 删除ArrayList中重复元素,保持顺序 / 提取两个list中不同的元素
    【Java】读取文本文件
    【Python】文件转码/编码/解码/utf8
  • 原文地址:https://www.cnblogs.com/webcyh/p/11459682.html
Copyright © 2020-2023  润新知