es6学习二

本文探讨了ES6中的Set集合,包括声明、去重、长度检测、元素判断与删除等特性,并提及Map集合在缓存中的应用。此外,还介绍了ES6的Class语法和对象继承的概念,提供了更接近Java的面向对象编程方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set集合

1.集合的声明

let s = new Set();

2.Set集合用于数组去重

const arr = [1,2,3,3,4,4,5,6];
const  Arr = new Set(arr);
console.log(Arr); //[1,2,,3,4,5,6]

3.size 检测数组的长度

let Arr = new Set(arr).size;
console.log(Arr); 

4.判断数组是否含有某个元素,如果有则可以返回true 没有返回false

 let Arr = new Set(arr).has(3);
 console.log(Arr);

5.删除某个元素

   //5.删除某个元素
        const s = new Set([1,2,3,66,7,8,]);
        // 内部含有iterator接口,可以使用for of循环
        for(let key of s){
          console.log(key);
        }
           s.delete(1);
          console.log(s); 
        //   6.增加一个元素
         s.add(10);
        console.log(s); 
        // 7.清空整个集合
        s.clear();
        console.log(s);

6.集合的应用

  //   集合的应用
    //   1.数组的去重
      let user =['1','2','3','4','3','1'];
    //  去重之后返回的是一个集合
      const arr = new Set(user);
    //   利用扩位运算符
      const arr2 = [...arr]
      console.log(arr2);
    //   2.交集
    let s1 = [1,2,4,5,6,6,7,7];
    let s2 = [1,2,368,9,9,0];
    const result = [...new Set(s1)].filter(items => {
        return new Set(s2).has(items);
    })
    console.log(result); 
    // 3.并集
     const result  =[...new Set( [...new Set(s1),...new Set(s2)])];
    console.log(result); 
    // 4.差集,结果与谁差集谁有关
    const result = [...new Set(s1)].filter(items => {
        return !new Set(s2).has(items);
    })
    console.log(result);

2.Map集合
用于缓存
Map一种以键值对形式存在的集合

  let m = new Map();
        // 1.添加元素
        m.set('mei','小橙子');
        m.set('shuai','小陈');
        // console.log(m);
        // 2.获取元素
        // console.log(m.get('mei'));
        // 3.删除元素
      /*   console.log(m.delete('shuai'));
        console.log(m); */
        // 4.检测
        console.log(m.has('mei'));
        // 5.元素个数
       /*  console.log(m);
        console.log(m.size); */
        // 6.清空
        console.log(m.clear());//清除成功返回true,和undfind
        console.log(m);
es6之class类

javaScript 语言中,生成实例对象的传统方法是通过构造函数和原型的组合模式.ES6 提供了更接近传统语言(java)的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。

   // es5对书写构造函数
      /*   function fn(brand,price) {
           this.brand = brand;
           this.price = price;
           
        }
        fn.prototype.call= function(somone){
            console.log(`我可以给${somone}打电话`);
        }
        fn.prototype.pall = function(sendmessage){
            console.log(`我可以给${sendmessage}发信息`);
        }
        let user = new fn('nokia','223');
        console.log(user.call('lili')); */
        // es6可以定义一个class类
        class fn {
            // 给类添加属性,必须通过构造方法
            constructor(brand,price){
               this.brand = brand;
               this.price = price;
            }
            // 给函数原型对象上添加方法
            call(somone){
                console.log(`我可以给${somone}打电话`);
            };
            send(sendmessage){
                console.log(`我可以给${sendmessage}发信息`);
            }
        }
        let user = new fn('jinli',599);
        console.log(user.call('lili'));
        // 通过class类不一定要有constructor方法
        class a {

        }
        let A = new a();
         console.log(A);
es6对对象的继承
  function Phone(barnd,price) {
            this.barnd = barnd;
            this.price = price;
        }
        Phone.prototype.call = function(){
            console.log('我可以打电话');
        }
        Phone.prototype.send = function(){
            console.log('我可以发消息');
        }
        // 子类
        function smartPhone(barnd1,price1,neicun,xiangshu) {
            // Phone.call(this,brand,price);
           this.barnd1 = barnd1;
           this.price1 = price1;
            this.neicun= neicun;
            this.xiangshu = xiangshu;
        }
        // 继承父类的方法 步骤二
        //es5中 步骤二和步骤三的顺序不能颠倒
        smartPhone.prototype = new Phone();
        smartPhone.prototype.constructor = smartPhone;
        //步骤三
        smartPhone.prototype.add = function(){
            console.log('可以下载软件');
        }
        smartPhone.prototype.plauGam = function(){
            console.log('可以打游戏');
        }
      let smart = new smartPhone('jinli',2999,'128g','2000w');
      console.log(smart);
      //es6实现对象的继承

       class Phone {
         //添加属性必须通过constructor构造函数
            constructor (barnd,price) {
                this.barnd = barnd;
                this.price = price;
            };
            call(someone){
            console.log(`我可以给${someone}打电话`);
          };
           sendMessage(someone){
               console.log(`我可以给${someone}打电话`);
           };
        }
        // 子类继承父类
        class smartPhone extends Phone {
            // 利用super方法定义与父类相同的属性
          
            constructor(brand,price,takephotos,piex){
               //调用父类的super方法 添加子类属性
                super(brand,price);
                this.takephotos = takephotos;
                this.piex = piex;
            }
            palygame(){
                console.log('可以打游戏');

            }

        }
        let iphone = new smartPhone('苹果','4999','拍照','2000w');
        console.log(iphone);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值