JavaScript的基本数据类型和引用数据类型及Set,Map的介绍


基本数据类型 -> 栈
string number boolean null undefined Symbol(es6)

引用数据类型 -> 堆
array object function data Set(es6) Map(es6)

 

Set是es6中新的引用数据类型,类似于数组,但是成员是唯一的 ,所以可以用来去重

 

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


let newSet = new Set();
//添加 add
newSet.add("5").add(5);
console.log(newSet);


//删除 delete
newSet.delete(5);
console.log(newSet);


//是否含有某元素 has
console.log(newSet.has("5")); //true;


//清除所有 clear
newSet.clear();
console.log(newSet);

//size Set的长度 和数组的length差不多

注意:Set内部的判断机制是 === ,undefined 与 undefined 是恒等的,所以不重复,

NaN 与 NaN 是不恒等的,但是在 Set 中认为NaN与NaN相等,所有只能存在一个,不重复。

let newSet = new Set();
newSet.add(NaN).add(NaN).add(1).add(1);
console.log(newSet);

  

Map也是es6中新引用的数据类型,类似于对象。

对象的键只能是字符串或者symbols,Map的键可以是任意值。

 let map = new Map([['name','张三']]);
//添加新元素 set
map.set("age","18");
console.log(map);

//查找特定的键并返回值 get
console.log(map.get("age"));

//查找是否有这个键 has
console.log(map.has("age"));
//删除某个键 delete
map.delete("age");
console.log(map);

//删除所有键 clear
console.log(map.clear());

如何知道Set和Map是新的引用数据类型

let set = new Set();
let map = new Map();
console.log(Object.prototype.toString.call(set)) //"[object Set]"
console.log(set instanceof Set) //true

  

传送门:https://es6.ruanyifeng.com/#docs/set-map

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM