ES6學(xué)習(xí)筆記之字符串、數(shù)組、對(duì)象、函數(shù)新增知識(shí)點(diǎn)實(shí)例分析
本文實(shí)例講述了ES6學(xué)習(xí)筆記之字符串、數(shù)組、對(duì)象、函數(shù)新增知識(shí)點(diǎn)。分享給大家供大家參考,具體如下:
1、模板字符串
反引號(hào)`` 內(nèi)用于輸入格式化的字符串文本,在``內(nèi)可以將表達(dá)式用${}包含起來(lái)
let str=` <!DOCTYPE html> <html lang="en"> <body> <div> <p class="pClass">格式化字符串</p> </div> </body> </html> `; console.log(str);
2、轉(zhuǎn)化為數(shù)組
Array.form將偽數(shù)組、集合轉(zhuǎn)化為數(shù)組
let allLi=document.querySelectorAll('li'); console.log(Array.isArray(allLi));//輸出false,allLi不是個(gè)數(shù)組 let arr=Array.from(allLi); console.log(Array.isArray(arr));//輸出true,arr被轉(zhuǎn)化為數(shù)組
Array.of將元素構(gòu)建為數(shù)組
let arrayOf=Array.of('str',2,{}); //創(chuàng)建由字符串、數(shù)字、對(duì)象構(gòu)成的數(shù)組 let arr=Array.of(7); //數(shù)組包含一個(gè)元素7 let arr=Array(7); //數(shù)組包含7個(gè)空元素
3、類(lèi)的封裝
通過(guò)class來(lái)包裝類(lèi)
class Person{ constructor(name,age){ //Person類(lèi)的構(gòu)造函數(shù) this.name=name; this.age=age; } print(){ //類(lèi)函數(shù)輸出 console.log("My name is "+this.name+",I'm "+this.age+" years."); } } let p=new Person('tony',15); p.print();
4、對(duì)象的使用
在用變量作為對(duì)象的元素時(shí),會(huì)將變量名作為鍵值,將變量值作為值
let name='tony'; let age=15; let person={ name, age } console.log(person);
輸出結(jié)果為:
Object { name: "tony", age: 15 }
Object.assign()方法實(shí)現(xiàn)對(duì)象合并,參數(shù)為:合并目標(biāo),合并源1,合并源2...
let obj1={'name':'tony'}; let obj2={'age':15}; let obj3={'sex':'男'}; let obj={}; Object.assign(obj,obj1,obj2,obj3); //將后面的對(duì)象并到第一個(gè)對(duì)象 console.log(obj);
輸出為:
Object { name: "tony", age: 15, sex: "男" }
5、延展操作符...
將整體字符串、對(duì)象等拆成單個(gè)元素
let str="這是一個(gè)字符串"; let arr=[...str]; console.log(arr);
輸出為:
6、函數(shù)Rest參數(shù)
當(dāng)不確定傳入的參數(shù)個(gè)數(shù)時(shí),可以采用"...參數(shù)"的方式,然后遍歷操作每個(gè)參數(shù)
function sum(name,...num) { console.log(name); let res=0; for (let value of num){ //將后面未知個(gè)數(shù)的參數(shù)當(dāng)作數(shù)組num遍歷 res+=value; } return res; } console.log(sum('tony',10,2,3));
7、箭頭函數(shù)
箭頭函數(shù)可以將函數(shù)function (參數(shù)) {表達(dá)式}簡(jiǎn)化為:(參數(shù)...)=>{表達(dá)式...},無(wú)需輸入function,甚至省略(),{},return。
1、當(dāng)只有一個(gè)參數(shù)時(shí),可以寫(xiě)為參數(shù) => 表達(dá)式,例如使用map函數(shù)遍歷一個(gè)數(shù)組,使每個(gè)元素乘2:
var arr = [1, 4, 9, 16]; const map1 = arr.map(x => x * 2); //利用map()遍歷數(shù)組,傳入一個(gè)參數(shù)當(dāng)作x,并返回x*2
map中的函數(shù)以x為參數(shù)遍歷每個(gè)arr中的元素,*2之后自動(dòng)返回,形成map1數(shù)組
2、當(dāng)有多個(gè)參數(shù)時(shí),需要給參數(shù)加括號(hào):() =>表達(dá)式,例如遍歷數(shù)組輸出索引與值:
let arr=['data0','data1','data2']; arr.forEach((value,index)=> //通過(guò)forEach遍歷數(shù)組,傳入兩個(gè)參數(shù)value與index console.log(index+':'+value) );
輸出如下:
3、當(dāng)有多行表達(dá)式時(shí),要用{}將函數(shù)包含成一塊:() =>{},并且使用塊語(yǔ)句時(shí),函數(shù)不會(huì)自動(dòng)返回值,需要使用return將值返回。
4、JavaScript的{}也可以表示一個(gè)對(duì)象,當(dāng)使用箭頭函數(shù)返回對(duì)象時(shí),為了與函數(shù)體區(qū)別需要將對(duì)象用()包含起來(lái):() =>({}),否則會(huì)報(bào)錯(cuò),例如在react中使用setState方法,需要返回一個(gè)對(duì)象:
this.setState((prevState) =>({ flag: !prevState.flag }))
8、Promise函數(shù)
在使用接口調(diào)用時(shí),有時(shí)需要根據(jù)調(diào)用返回是否成功分別去調(diào)用不同的函數(shù),ES6提供了Promise函數(shù)來(lái)解決這個(gè)問(wèn)題。在調(diào)用成功時(shí),執(zhí)行.then方法,失敗時(shí)執(zhí)行.catch方法來(lái)分別處理不同情況,返回不同的數(shù)據(jù)。
例如定義一個(gè)檢查登陸的Promise方法,當(dāng)傳入?yún)?shù)為true時(shí)登陸成功,回調(diào)函數(shù)為then,false失敗,調(diào)用catch:
//定義promise函數(shù) let checkLog=function (flag) { return new Promise(function(resolve,reject){ if(flag){ //如果判定條件為真,執(zhí)行resolve函數(shù) resolve({ //其括號(hào)內(nèi)的參數(shù)作為結(jié)果返回 status:1, info:"登陸成功" }) }else{ //判定為假執(zhí)行reject函數(shù) reject({ status:0, info:"登陸失敗" } ) } }) }; //使用promise函數(shù) checkLog(false).then(res=>{ //根據(jù)promise返回的不同值分別執(zhí)行then或catch console.log(`成功信息:${res.info}`); }).catch(err=>{ console.log(`錯(cuò)誤信息:${err.info}`); })
當(dāng)傳入true:當(dāng)傳入false:
感興趣的朋友可以使用在線(xiàn)HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JS對(duì)象數(shù)組中如何匹配某個(gè)屬性值
這篇文章主要介紹了JS對(duì)象數(shù)組中如何匹配某個(gè)屬性值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09一篇文章搞定JavaScript類(lèi)型轉(zhuǎn)換(面試常見(jiàn))
這篇文章主要介紹了一篇文章搞定JavaScript類(lèi)型轉(zhuǎn)換(面試常見(jiàn)),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01js手動(dòng)播放圖片實(shí)現(xiàn)圖片輪播效果
這篇文章主要為大家詳細(xì)介紹了js手動(dòng)播放圖片實(shí)現(xiàn)圖片輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09ES6解構(gòu)賦值(數(shù)組,對(duì)象,函數(shù))使用詳解
這篇文章主要介紹了ES6解構(gòu)賦值(數(shù)組,對(duì)象,函數(shù))使用詳解,JavaScript 中最常用的兩種數(shù)據(jù)結(jié)構(gòu)是 Object 和 Array,解構(gòu)操作對(duì)那些具有很多參數(shù)和默認(rèn)值等的函數(shù)也很奏效,本文通過(guò)實(shí)例代碼詳細(xì)講解需要的朋友可以參考下2022-11-11微信小程序?qū)崿F(xiàn)簡(jiǎn)單的select下拉框
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單的select下拉框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11使用JS在瀏覽器中判斷當(dāng)前網(wǎng)絡(luò)連接狀態(tài)的幾種方法
本篇文章主要介紹了使用JS在瀏覽器中判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)的幾種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05