寒假学习——ES6(2)

寒假学习——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);

猜你喜欢

转载自blog.csdn.net/Phoebe4/article/details/113042389