1、set数据结构和map数据结构:

(1)set: 数据结构set(集合,无序且值不能重复的数据集合,特点是key值和value值相同,没有重复的value

//1 创建set
var s=new Set([,,])
console.log(s)
//2 set的属性,size(和length是一样的)
console.log(s.size) //3
//3 set的方法,(1)add方法-添加可以链式操作,返回的事set本身 console.log(s.add('a').add('b').add('c'))
//delete(value)-删除,返回布尔值,true或者false
console.log(s.delete('a'))
console.log(s)
//has(value) 判断是否有某个值,返回布尔值
console.log(s.has('a'))
//clear()方法 清除数据,没有返回值
// s.clear();
// console.log(s)
//遍历方法有 s.keys()返回遍历键值,s.values()返回遍历value s.entries()返回键值和value对,s.forEach()方法,遍历每个成员
console.log(s.keys())
console.log(s.values())
console.log(s.entries())
s.forEach(function(value,key,set){
console.log(value+'wir')
})

(2)map:map不同于set(集合),它使用的是[键,值]的形式储存数据,与object不同的是object键值只能是字符串也就是字符串-值,而map允许键值可以是对象也就是值-值

//一 创建map
let map=new Map([['a',],['{b:2}',]])
console.log(map)
//二 方法 set(key,value),设置键名key对应的值为value,然后返回整个map结构,也就是可以链式操作,如果key有值,则会被后来的覆盖
//get(key) 返回key对应的值,没有则undefined
//delete(key)删除key对应的值,返回布尔值 true或者false
//has(key)判断是否有某个key,返回布尔值true false
//clear() 清空
//遍历方法 keys():遍历key值
console.log(map.keys())
//values() :遍历values
console.log(map.values())
//entries():键值对遍历
console.log(map.entries())
//forEach()
map.forEach(function (key,value,map) {
console.log(key+'和'+value)
})
//NaN是互补相等的,但是在map里面认为是同一个,不能重复添加,对象{}可以
map.set({},'a').set({},'b')
console.log(map)

2、class类:JS语言的传统方法是通过构造函数,定义并生成新对象,是一种基于原型的面向对象系统。现在js越来越像java等面向对象语言差别很大,所以在ES6中新增了类的概念,可以使用 class 关键字声明一个类,之后以这个类来实例化对象

// const Xub= function (a, b){
// this.a = a;
// this.b = b;
// return this;
// };
//
// Xub.prototype = {
// constructor:Xub,
// print: function (){
// console.log(this.a + ' ' + this.b);
// }
// };
//
//
// const xub= new Xub('hello', 'world').print();
class Xub{
constructor(a,b){
this.a=a;
this.b=b;
// return this
}
print(){
console.log(this.a,this.b)
}
}
const result=new Xub('hello','world').print()
// 1 Xub这个类除了构造方法,还定义了一个print方法。
// 注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。
// 另外,方法之间不需要逗号分隔,加了会报错。
// 2 构造函数的prototype属性,在ES6的“类”上面继续存在。而且类的所有方法都定义在类的prototype属性上面。
console.log(Xub.prototype)
// 3 constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。
// 一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。

set和map结构,class类的更多相关文章

  1. JAVA中的数据结构——集合类(线性表:Vector、Stack、LinkedList、set接口;键值对:Hashtable、Map接口<HashMap类、TreeMap类>)

    Java的集合可以分为两种,第一种是以数组为代表的线性表,基类是Collection:第二种是以Hashtable为代表的键值对. ... 线性表,基类是Collection: 数组类: person ...

  2. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  3. Java中的集合(十四) Map的实现类LinkedHashMap

    Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...

  4. .net(C#)中结构和类的区别

    static void Main(string[] args) { //类型 //结构:值类型 //类:引用类型 //声明的语法:class struct //在类中,构造函数里,既可以给字段赋值,也 ...

  5. CSS3 结构伪类选择器 详解

    1 CSS3 结构伪类选择器 1.E:root 匹配E元素所在的根元素 即:html 2. E:nth-child(n) (1)匹配E元素的父元素中第n个子元素,(2)且该位置的子元素类型必须是E类型 ...

  6. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  7. ES6笔记(6)-- Set、Map结构和Iterator迭代器

    系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...

  8. Map/Reduce的类体系架构

    Map/Reduce的类体系架构 Map/Reduce案例解析: 先以简单的WordCount例程, 来讲解如何去描述Map/Reduce任务. public static void main(Str ...

  9. C#中结构与类的区别

    一.类与结构的示例比较: 结构示例: public struct Person { string Name; int height; int weight public bool overWeight ...

随机推荐

  1. 【React】react学习笔记01-概念与基本使用

      俺为啥要学这玩意:   家里的杂事好不容易处理完了,开始正式静下心来学习~博主是做后端开发的,js基础不深,之前也是用React写过许多东西了,但是基本上都是用的CV大法,别人的组 件修修改改拿来 ...

  2. 【设计模式】结构型04桥接模式(Bridge Pattern)

    学习地址:http://www.runoob.com/design-pattern/bridge-pattern.html 桥接模式(Bridge Pattern) 桥接模式(Bridge patte ...

  3. 跟我学SpringCloud | 第四篇:熔断器Hystrix

    跟我学SpringCloud | 第四篇:熔断器Hystrix 1. 熔断器 服务雪崩 在正常的微服务架构体系下,一个业务很少有只需要调用一个服务就可以返回数据的情况,这种比较常见的是出现在demo中 ...

  4. Linux搭建基于BIND的DNS服务器

    Linux搭建基于BIND的DNS服务器   实验目标: 通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤: 1.安装BIND 2.防火墙放通DNS服务 3.编辑BIND的主配置文件 4.编 ...

  5. CSU 1508:地图的四着色(DFS+剪枝)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1508 题意:地图中四联通的块是一个国家,A和B每个人可以涂两种颜色,且B不能涂超过5次,相邻的国家 ...

  6. 分布式事务(2)---TCC理论

    分布式事务(2)---TCC理论 上篇讲过有关2PC和3PC理论知识,博客:分布式事务(1)---2PC和3PC理论 我的理解:2PC.3PC还有TCC都蛮相似的.3PC大致是把2PC的第一阶段拆分成 ...

  7. C# 反射的详细理解

    网友A的解释: C# 反射机制的学习心得   首先说说,为什么要学习 反射 呢?有什么用啊. 在我们写程序的时候,经常会用到一些类中的方法,那么就要调用这些个类.如果不是在一个命名空间里时,就要引用相 ...

  8. 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  9. 从无到有构建vue实战项目(五)

    八.错误总结(一) webpack打包项目识别子组件路径问题 之所以出现了这样的问题是因为在webpack打包项目时,未将此处的子组件路径正确识别: 将此处的carousel改为carousel.vu ...

  10. Scratch3 二次开发系列

       Scratch3.0来啦!!! Scratch做为图像化编程的首选语言,拖过积木块搭建实现动画游戏的制作.Scratch3添加了音乐.画笔.视频侦测.文字朗读.翻译等选择性下载扩展积木,可实现积 ...