寒假学习——ES6(2)

本文详细介绍了ES6中的箭头函数的适用场景,强调它们在回调、定时器和数组方法回调中的优势。同时,探讨了函数参数默认值的设定及与解构赋值的结合使用。此外,还讲解了rest参数如何获取函数实参,以及扩展运算符在数组合并和伪数组转换中的应用。最后,提到了ES6的Symbol特性,包括其唯一性和在对象属性中的使用,以及一些内置的Symbol属性。
摘要由CSDN通过智能技术生成

寒假学习——ES6(2)

箭头函数的适合场景:与this无关的回调、定时器、数组的方法回调,不太适合用在对象的方法中

函数参数默认值
  • 1、允许给形参赋初始值(注意一般具有默认值的参数位置要靠后)
  • 2、可以与 解构赋值一起用
function add(a, b, c = 10) {
            return a + b + c;
        }
        let result = add(1, 2);//没传参数就用默认值传了就用传的参数
        console.log(result);



function connect({host="127.0.0.1",username,password,port}){
            console.log(host);
            console.log(username);
            console.log(password);
            console.log(port);
        }
        connect({
            // host:'localhost',
            username:'admin',
            password:'root',
            port:'3306'
        })
rest参数
  • ES6引入rest参数,来获取函数的实参,用来代替arguments

        function fun(a,b,...args){
            console.log(a);
            console.log(b);
            console.log(args);
        }//rest参数必须放在最后...是格式
        fun(1,2,3,4,5,6);
扩展运算符
  • …和rest参数一样(不过rest是放在形参位置),但是可以将数组转换成逗号分隔的参数序列
 const fruit=['banana','apple','pear'];
        function print(){
            console.log(arguments);
        }
        print(...fruit);
  • 在这里插入图片描述

  • 用于数组合并

 const paopao=['banana','peach'];
        const guoguo=['apple','grape'];
        const hong=[...paopao,...guoguo];
        console.log(hong);
  • 将伪数组转换成真正数组
const divs=document.querySelectorAll('div');
const divarray=[...divs];
console.log(divarray);
Symbol
  • Symbol是es6引入的新的原始数据类型,是一种类似于字符串的数据类型
  • Symbol值是唯一的用于解决命名冲突问题
  • 不能与其他数据类型进行运算
  • 不能用for in进行遍历但是可以用Reflect.ownKeys获取对象的所有键名
//创建Symbol类型的2种方式
let s=Symbol();
        let s2=Symbol("红");
        let s3=Symbol("红");
        console.log(s2==s3);//false
        let s4=Symbol.for("红");
        let s5=Symbol.for("红");
        console.log(s4==s5);//true
  • 数据类型记忆:

  • 在这里插入图片描述

  • 对象添加属性和方法(独一无二)

 let game={
            name:"狼人杀";
            [Symbol('say')]:function(){
                cosole.console.log("我可以发言");
            },
            [Symbol('duyao')]:function(){
                cosole.console.log("我可以使用毒药");
            }
        }
        console.log(game);
Symbol属性(11个)
  • 解释:例如第一个hasInstance,hasInstance作为Symbol的属性,Symbol.hasInstance整体作为对象的一个属性

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

//比如hasInstance属性
//可以将instanceof前面的值传入作为参数传递进去
        class Person{
            static [Symbol.hasInstance](param){
                cosole.log(param);
				return false;//由内部决定是返回true 或者false
            }
        }
        let obj={};
        console.log(o instanceof Person);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值