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