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方法会被默认添加。

最新文章

  1. Visual Studio 使用Web Deploy 3.6发布项目
  2. 安装LNMP(Nginx+Mysql+PHP)
  3. mvc api 返回json
  4. android view : 自定义
  5. ubuntu: NO_PUBKEY 8D5A09DC9B929006
  6. (转)create table #temptable 临时表 和 declare @bianliang table ()表变量
  7. JavaScript:JavaScript语法的详细介绍
  8. js基础知识(pomelo阅读)
  9. Codeforces Round #130 (Div. 2)
  10. GoogleMapApi 发布后提示安全问题
  11. VS2012中进行Web性能和负载测试
  12. 通过实例深入理解lec和yacc
  13. python pythonic是什么?
  14. React.js再探(二)
  15. Markdown转pdf
  16. 201521123017 《Java程序设计》第11周学习总结
  17. [转载] 一致性hash算法释义
  18. thinkphp做搜索功能
  19. 第十一章 泛型算法 C++ PRIMER
  20. 机器学习之高斯混合模型及EM算法

热门文章

  1. 老雷socket编程之PHP利用socket扩展实现聊天服务
  2. mariadb10.1.17安装
  3. php实现redis锁机制
  4. 👮 Golang Gin/Ace/Iris/Echo RBAC 鉴权库
  5. Python向FTP服务器上传文件
  6. 多语言应用性能监控系统:Elastic APM
  7. MAC iterm2 常用快捷键大全
  8. python的基本语法
  9. kettle —— 从 oracle 到 oracle的坑
  10. 01(b)无约束优化(准备知识)