<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>console.log('----------------   Set   ------------------');//Set结构类似数组,但成员值唯一const set = new Set([1, 2, 3, 3, 3]);console.log(set, set.size); //Set类型:[1,2,3]  3//使用剩余参数转化为Array类型let arr = [...new Set([7, 8, 9, 9, 9])];console.log(arr, arr.length); //Array类型:[7,8,9]  3//添加元素set.add(4);console.log(set); //[1,2,3,4]//删除元素set.delete(3);console.log(set); //[1,2,4]//是否存在该元素console.log(set.has(3)); //false// for ... of ... 迭代Setfor (let item of set) {console.log(item); //1 2 4}// foeEach() 迭代Setset.forEach((value) => {console.log(value); //1 2 4})console.log('----------------   Map   ------------------');//键值对,key唯一let map = new Map([['a', 123],['b', 456],['b', 456]]);console.log(map); //0:{'a'=>123} 1:{'b'=>456}console.log(map.size); //2//添加键map.set('k1', 'v1');map.set('k1', 'v1');map.set('k1', 'v1');map.set('k1', 'v1');console.log(map); //0:{'a'=>123} 1:{'b'=>456} 2:{'k1'=>'v1'}//获取键console.log(map.get('k1')); //'v1'//删除键console.log(map.delete('k1'), map); //0:{'a'=>123} 1:{'b'=>456}//清空mapconsole.log(map.clear(), map);map.set('name', '张三');map.set('nickname', '法外狂徒');// for ... of ... 迭代Setfor (let item of map) {console.log(item); //['name','张三'] ['nickname','法外狂徒']}// foeEach() 迭代Setmap.forEach((v,k) => {console.log(k,v); //name 张三 nickname 法外狂徒})console.log('----------------   Proxy   ------------------');//创建一个对象的代理,从而实现基本操作的拦截(查找 、赋值、枚举、函数调用等)//new Proxy(obj,handle) obj:对象  handle:行为const handler = {get: function(obj, prop) {return prop in obj ? obj[prop] : prop + ' is undefined';},set: function(obj, prop, value) {if (value > 30) {throw new Error(value + ' is too big');} else {obj[prop] = value;}}};const pro = new Proxy({}, handler);//查找拦截pro.a = 10;pro.b = 20;console.log(pro.a, pro.b, pro.c); //10 20 "c is undefined"//赋值拦截// pro.d=31;//31 is too bigconsole.log('----------------   Symbol   ------------------');// 每个从Symbol()返回的symbol值都是唯一的let s1 = Symbol('a');let s2 = Symbol('a');let obj = {};console.log(s1 === s2); //falseobj[Symbol('a')] = 'a';obj[Symbol('b')] = 'b';obj.c = 'c';console.log(obj); //Symbol(a):'a' Symbol(b):'b' c:'c'</script></body>
</html>

Javascript ES6 Set、Map、Proxy、Symbol相关推荐

  1. 【重难点】【Java集合 02】Set、List、Map 的区别、常见的线程安全的集合类、Collection 为什么只能在 Iterator 中删除元素

    [重难点][Java集合 02]List.Set.Map 的区别.常见的线程安全的集合类.Collection 为什么只能在 Iterator 中删除元素 文章目录 [重难点][Java集合 02]L ...

  2. Charles 2 - breakpoint断点、compose编辑、rewrite重写、map映射重定向、repeat重发、throttling弱网测试

    一.breakpoint断点 Breakpoints功能可用于临时修改一次网络请求结果.当指定的网络请求发生时,使用BreakPoints可截获该请求,这时可以修改该请求的Request参数和Resp ...

  3. 集合-2(Set(HashSet、TreeSet、LinkedHashSet)、List(ArrayList、LinkedList、Vector)、Map(HashMap、TreeMap...))

    1.Set接口 集合中的元素不能重复,所以存入Set的元素都必须定义equals()来确保对象的唯一性. 无序.无索引 1.1HashSet类 实现了Set接口,此实现不是同步的. 由哈希表支持.实际 ...

  4. 学习笔记:C++进阶【继承、多态、二叉树进阶、map和set、哈希、C++11、异常、智能指针、特殊类设计、C++的类型转换】

    文章目录 前言 一.继承 1. 继承的概念及定义 1.1 继承的概念 1.2 继承的定义 1.2.1 定义格式 1.2.2 继承关系和访问限定符 1.2.3 继承基类成员访问方式的变化 2. 基类和派 ...

  5. java:集合(Collection【List(ArrayList Vector LinkedList)、set】、Map【hashMap、treeMap、hashtable、properties】)

    目录 集合的框架体系 一.Collection接口和常用方法 1.1   List接口和常用方法 1.1.1   ArrayList底层结构和源码分析 1.1.2 Vector底层结构 1.1.3 L ...

  6. Unity之Material材质、Map贴图、TextTure贴图

    Texture(纹理) 纹理:是Unity最基础的图片形式 对,纹理就是一个图片,纯粹的图片. 从项目的外部选择一张绿色图片拉到项目Assets/Texture文件夹中, 如下图 点击绿色图片-> ...

  7. 穿刺检查、代理http proxy、https proxy、Socks,代理本质上就是一个中介

    作用 HTTP代理服务器 代理服务器(Proxy Server)功能就是代理网络用户去获得网络信息,形象点说就是网络信息的中转站. 用户客户机(client) <--> 代理服务器(pro ...

  8. Java-Map从入门到性能分析1【Map初识、Map通用方法、HashMap的使用(遍历方法、性能分析)】

    [视频网址]:慕课网--Map从入门到性能分析 简介:Map是开发中,使用频率最高的知识点之一,Map家族也有很多成员,例如HashMap,LinkedMap等, 怎样更好地使用Map家族的这些成员, ...

  9. 增强for循环、Map接口遍历、可变參数方法

    增强for循环 1.for循环能做得事情.增强for循环大部分都能做(假设要想获得下标的时候就必须使用简单for循环了) 2.增强for有时候可以方便的处理集合遍历的问题,可是集合的标准遍历是使用迭代 ...

  10. ES6新特性(中)——ES6的集合(set集合、map集合等)

    这里写目录标题 ES6的集合 一.Set集合 1.操作方法 2.遍历方法: 二.WeakSet集合 1.概念理解 2.方法: 3.WeakSet 的应用场景/好处 三.Map集合 1.概念理解 2.属 ...

最新文章

  1. SAP屏幕设计器专题:树控件的使用(九)
  2. (20)PDE_PTE属性(U/S PS A D 有效位)
  3. 南陵中学2021高考成绩查询,南陵中学2019高考成绩喜报、一本二本上线情况
  4. Merge Sort及其对一类问题的应用
  5. LeetCode 1694. 重新格式化电话号码(模拟)
  6. JetBrains下载历史版本
  7. 导师什么时候会放弃学生?
  8. 本田2022年新车将搭载谷歌Automotive OS
  9. 消息中间件学习总结(7)——RocketMQ之万亿级数据洪峰下的分布式消息引擎
  10. Windows Phone 8 与 windows 8 开发技术概览
  11. 常见排序算法整理2(C++实现)
  12. IPC$经典入侵步骤和常用net命令
  13. 网页设计 颜色搭配
  14. 计算机屏幕位置高低,电脑显示器的最佳位置
  15. jupyter notebook 中运行from scipy import stats之后报错FutureWarning:
  16. 设计模式与软件体系结构复习资料——设计模式
  17. 关于PS课程中字体部分的学习总结
  18. C语言应用到SSD,SSD1963的样例程序 c语言驱动读写程序.doc
  19. JS实现鼠标中心放大图片功能原理及实例演示
  20. 蛋白质相互作用位点标签的获取方法

热门文章

  1. 从 Ops 到 NoOps,阿里文娱智能运维的关键:自动化应用容量管理
  2. 开源激荡 30 年:从免费社区到价值数十亿美元公司
  3. 64% 的企业未实现智能化,5 成公司算法工程师团队规模小于 10人,AI 工程师的机遇在哪里?...
  4. Facebook 又搞事,违反竞业协议被起诉,PyTorch 关键技术疑侵权
  5. 阿里华为百度三足鼎立,5G 资费高,操作系统 Linux 称王 | 中国物联网开发者真实现状报告...
  6. 12306 出招抢票软件,技术黄牛生意要“黄”?
  7. 趣谈 JOIN 操作
  8. 直接拿来用!Google 新推 AI 模型打破了现有 CNN 技术壁垒
  9. 37 岁学编程,发现第一个 Bug,创造商业编程语言 | 人物志
  10. 简便 or 缺陷?Python 内置函数大揭秘!| 技术头条