es6(四):Symbol,Set,Map
1.Symbol:
Symbol中文意思“象征”
let s=Symbol()
console.log(typeof s)//symbol
let s1=Symbol('s1')
let s2=Symbol('s1')
//Symbol是独一无二的值,所以进行比较返回的永远是false
console.log(s1===s2)
let name1=Symbol()
let obj={
name1:'apple',//此处name1是字符串
[name1]:'blue'//Symbol的name1在对象中必须用中括号括起来,否则被认为是字符串
}
console.log(obj.name1,obj['name1'],obj[name1])//前面两种是获取apple写法,后面是获取Symbol(即blue)的写法
2.Set:新的数据结构,类似数组,但是成员的值是唯一的(所以可以用来去重)
console.log(new Set([1,2,3,2,3]))
let a=new Set();//此处加上分号,因为下面这行代码以[]开头
[1,2,3,2,3,'2','3'].forEach(element => {
a.add(element)
});
//此处说明Set内部使用的是严格相等运算符===
console.log(a)//Set(5) {1, 2, 3, "2", "3"}
for(let i of a){
console.log(i,typeof i)
}
console.log({}==={})
let b=new Set()
b.add({})
b.add({})
console.log(b,b.size)//Set(2) {{…}, {…}} 2
let c=new Set()
c.add(1).add(2).add(3).add(2)
console.log(c)//Set(3) {1, 2, 3}
c.delete(2)
console.log(c)//Set(2) {1, 3}
console.log(c.has(2))//false
c.clear()//清空所有值
console.log(c)//Set(0) {}
3.Map:"值对值"的对应 对比传统的对象 "字符串对值"的对应
let m=new Map([
[1,10],
[true,'100']
])
console.log(m)//Map(2) {1 => 10, true => "100"} console.log(m.size)//
console.log(m.has(1))//true
console.log(m.get(true))//
m.set(1,100)
console.log(m)//Map(2) {1 => 100, true => "100"}
es6(四):Symbol,Set,Map的更多相关文章
- ES6中Set 和 Map用法
JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...
- es6的Set和Map数据结构
Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ⇧ 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...
- ES6之Symbol
ES6中Symbol是为了防止属性名冲突而引入的,是独一无二的.Symbol值是通过Symbol函数生成.Symbol值不能与其他类型的值运算否则会报错且Symbol的值可以转换为字符串或者是布尔值但 ...
- 前端笔记之React(六)ES6的Set和Map&immutable和Ramda和lodash&redux-thunk
一.ES6的Set.Map数据结构 Map.Set都是ES6新的数据结构,都是新的内置构造函数,也就是说typeof的结果,多了两个: Set 是不能重复的数组 Map 是可以任何东西当做键的对象 E ...
- [集合]Map的 entrySet() 详解以及用法(四种遍历map的方式)
Entry 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也 ...
- Es6(Symbol,set,map,filter)
首先再讲这几个新东西之前,先说一个Es6中新出的扩展运算符(...) 1.展开运算符,就是把东西展开,可以用在array和object上 比如: let a=[,] let b=[,...a,]//[ ...
- ES6(四) --- 正则 Number Math
想学vue了 重启ES6的学习之路 在ES5 中正则的构造器 RegExp 不支持第二个参数 ES6 做了调整 第二个参数表示正则表达式的修饰符(flag) var regex = new ...
- 深入理解ES6之—set与map
Set是无重复值的有序列表.Set会自动移除重复的值,因此你可以使用它来过滤数组中重复的值并返回结果. Map是有序的键值对,其中的键允许是任何类型. Set和Map是es6新增的两个数据集合. Se ...
- ES6(四)字符串的扩展
1.字符的表示方式 最早在 \u0000-\uFFFF 之间的字符已经足够使用吗,每个字符占两个字节,超出范围,必须使用双字节形式表达, 即每个字符占四个字节.超出范围的字符,会被解读成 \uXX ...
- es6入门set和map
ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化. var set = new Set([1, ...
随机推荐
- HttpClient 解决中文乱码
public static String httpGet(String url) { try { HttpGet httpGet = new HttpGet(url); HttpClient clie ...
- UNIX环境高级编程——标准I/O库
对一个进程预定义了三个流,并且这三个流可以自动的被进程使用,它们是:标准输入.标准输出.和标准错误. 标准I/O库提供缓冲的目的是尽可能减少使用read和write的次数. 标准I/O库提供了三种类型 ...
- 抓包工具Fidder详解
第一步:下载神器Fiddler,下载链接: http://fiddler2.com/get-fiddler 下载完成之后,傻瓜式的安装一下了! 现在这个下载链接失效了,可以百度下载 第二步:设置Fid ...
- shell 常用正则表达式
"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" ...
- hive发杂数据结构的使用,struct,array,map
一个简单介绍http://jimi68.iteye.com/blog/980573 一般的复杂介绍:http://songpo-ath-taobao-com.iteye.com/blog/140513 ...
- TableLayout和Viewpager实现切换
因为我是在之前的基础上写的,所以这个TableLayout和Viewpager实际上是写在Fragment上的.要写到Activity里其实也是一样的啦. 先看效果图,原谅我不会动态图,只能截个图啦 ...
- 《java入门第一季》之面向对象(构造方法)
/* 构造方法: 给对象的数据进行初始化 格式: A:方法名与类名相同 B:没有返回值类型,连void都没有 C:没有具体的返回值 */ class Student { private String ...
- saiku应用的调试
ubuntu下解压saiku包后使用: 运行.sh命令(.bat是windows命令).运行时注意权限.可以先chmod a+x *.sh 提示,catali?.sh出错. 这是tomcat的一个文件 ...
- LeetCode之“动态规划”:Maximum Product Subarray
题目链接 题目要求: Find the contiguous subarray within an array (containing at least one number) which has t ...
- 【LaTeX排版】LaTeX使用--入门基础<二>
1.在命令之后留一个空格有下列方式: 源文件如下: \documentclass[a4paper,12pt]{book}%采用book类型(中篇论文一般采用这种类型),A4纸,字体为12磅,默认为10 ...