ES6學(xué)習(xí)筆記之新增數(shù)據(jù)類型實(shí)例解析
本文實(shí)例講述了ES6學(xué)習(xí)筆記之新增數(shù)據(jù)類型。分享給大家供大家參考,具體如下:
1、數(shù)據(jù)解構(gòu)賦值
1、數(shù)組的解構(gòu)賦值
基本用法:let [key1,key2...]=[value1,value2...]
let [name,age,sex]=['小明',24,'男']; console.log(name); console.log(age); console.log(sex);
注意左右的key與value格式要匹配對應(yīng),鍵值可以缺省,但逗號的位置要正確
let [arr1,,[arr3,,[,arr6]]]=[1,2,[31,32,[331,332]]]; console.log(arr1); console.log(arr3); console.log(arr6);
2、對象的解構(gòu)賦值
用法:let {key1,key2...}={key1:value1,key2:value2...}
let obj={name:'小明',age:24,sex:'男',friend:['小張','小李']};
console.log(obj.name);
console.log(obj.age);
console.log(obj.sex);
console.log(obj.friend);
3、字符串類型
字符串中每個(gè)字符與數(shù)組鍵對應(yīng)
let [a,b,c]="這是一個(gè)字符串"; console.log(a); console.log(b); console.log(c);
2、新增數(shù)據(jù)類型Set集合
set與數(shù)組不同在于set中不可以有重復(fù)數(shù)據(jù),常用于去重操作
1、創(chuàng)建set
let myset=new Set(['data1','data2','data3','data3']);
2、屬性size:集合的元素個(gè)數(shù)
console.log(myset.size);
3、方法
myset.add('data4');//增加元素
myset.delete('data2');//刪除元素
console.log(myset.has('data1'));//判斷是否含有某個(gè)元素,包含返回true
myset.clear();//清除集合所有元素
console.log(myset.keys());//返回集合所有的鍵值
console.log(myset.values());//返回集合所有值
3、新增數(shù)據(jù)類型Map
由于對象的鍵值只能是字符串,不可以是對象類型,使用對象作為鍵值會(huì)被toString轉(zhuǎn)化為字符串"[object Object]",例如:
let obj1={key:1},obj2={key:2},obj={};
obj.value='objValue';
obj[obj1]='obj1Value'; //將對象obj1作為obj的鍵值
obj[obj2]='obj2Value';
console.log(obj);
輸出:Object { value: "objValue", "[object Object]": "obj2Value" },由于轉(zhuǎn)化為相同的鍵值字符串,obj2會(huì)覆蓋obj1
而使用map可以避免鍵值必須為字符串的限制,其鍵值可以為對象、數(shù)組等
1、創(chuàng)建Map
let mymap=new Map([
['stringKey','stringValue'],
['age',24],
[obj1,'obj1Value'],
[obj2,'obj2Value'],
[['arr'],'arrValue']
]);
打印mymap如下:

2、屬性size:返回map中鍵值對個(gè)數(shù)
console.log(mymap.size);
3、方法
mymap.set('key','value');//設(shè)置map的鍵、值
mymap.get('key');//通過鍵來取值
mymap.delete('key');//刪除對應(yīng)的鍵值
mymap.has('key');//判斷是否含有
//mymap.clear();//清除map中所有鍵值
//遍歷
mymap.forEach(function (value,key) {
console.log(key+":"+value);
})
4、注意{}與{}是不同的兩個(gè)鍵值
mymap.set({},"obj1");
mymap.set({},"obj2");
以上語句obj2不會(huì)覆蓋obj1,由于空對象{}在內(nèi)存中不同的堆區(qū)申請存儲(chǔ)空間,所以作為鍵值它們是不同的
4、Symbol類型
在用相同的字符串對對象屬性名或方法進(jìn)行命名時(shí)會(huì)發(fā)生命名沖突,而使用symbol產(chǎn)生的名字是不同的,例如:
let obj={};
obj[Symbol('name')]="小趙";
obj[Symbol('name')]="小錢";
console.log(obj);
結(jié)果如下,不會(huì)覆蓋第一句:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
- ES6中新增的Object.assign()方法詳解
- 淺談ES6新增的數(shù)組方法和對象
- ES6中字符串string常用的新增方法小結(jié)
- ES6中數(shù)組array新增方法實(shí)例總結(jié)
- ES6 新增的創(chuàng)建數(shù)組的方法(小結(jié))
- 淺析Javascript ES6新增值比較函數(shù)Object.is
- ES6新增的math,Number方法
- ES6新增數(shù)據(jù)結(jié)構(gòu)WeakSet的用法詳解
- ES6中Math對象新增的方法實(shí)例詳解
- 詳解es6新增數(shù)組方法簡便了哪些操作
- ES6知識點(diǎn)整理之String字符串新增常用方法示例
- 簡述ES6新增關(guān)鍵字let與var的區(qū)別
相關(guān)文章
基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題
這篇文章主要介紹了基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java阻塞隊(duì)列BlockingQueue基礎(chǔ)與使用
本文詳細(xì)介紹了BlockingQueue家庭中的所有成員,包括他們各自的功能以及常見使用場景,通過實(shí)例代碼介紹了Java 阻塞隊(duì)列BlockingQueue的相關(guān)知識,需要的朋友可以參考下2023-01-01
Java?ConcurrentHashMap實(shí)現(xiàn)線程安全的代碼示例
眾所周知ConcurrentHashMap是HashMap的多線程版本,HashMap?在并發(fā)操作時(shí)會(huì)有各種問題,而這些問題,只要使用ConcurrentHashMap就可以完美解決了,本文將給詳細(xì)介紹ConcurrentHashMap是如何保證線程安全的2023-05-05
Java狀態(tài)機(jī)的一種優(yōu)雅寫法分享
狀態(tài)機(jī)是一種數(shù)學(xué)模型,對于我們業(yè)務(wù)實(shí)現(xiàn)有很大的幫助。我們可以用非常多的方法實(shí)現(xiàn)狀態(tài)機(jī),這篇文章就來介紹一個(gè)狀態(tài)機(jī)優(yōu)雅的實(shí)現(xiàn)方法,希望對大家有所幫助2023-04-04
自己動(dòng)手用Springboot實(shí)現(xiàn)仿百度網(wǎng)盤的實(shí)踐
本項(xiàng)目基于Springboot開發(fā)實(shí)現(xiàn),前端采用BootStrap開發(fā)實(shí)現(xiàn),模仿百度網(wǎng)盤實(shí)現(xiàn)相關(guān)功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12

