我們?cè)谔幚頂?shù)組的時(shí)候,如果想要?jiǎng)h除干凈一個(gè)數(shù)組按照正常的方式肯定是循環(huán)遍歷,然后一個(gè)一個(gè)的將其刪除掉,但在實(shí)際操作中會(huì)出現(xiàn)刪除不干凈的情況,這就是數(shù)組塌陷,下面小千介紹幾種解決辦法,記得收藏哦~
解決數(shù)組塌陷的辦法
1.設(shè)置刪除起始位置為0
想刪除干凈,需要將數(shù)組的長(zhǎng)度先單獨(dú)保存(let length=arr.length),不然數(shù)組的長(zhǎng)度會(huì)隨著數(shù)組的變化而變化,從而4>3,后面三個(gè)刪除不了,例:
2.從后面開(kāi)始刪除,倒著刪除
由圖可知,數(shù)組元素刪除干凈,刪除最后的元素即使影響數(shù)組的長(zhǎng)度,但是它依舊是刪除最后一個(gè),直到刪除干凈為止
3.讓i永遠(yuǎn)成為0,永遠(yuǎn)刪除的是第一個(gè)元素
由圖可知,數(shù)組刪除干凈,刪除的總是第一個(gè)元素,即使數(shù)組塌陷它總會(huì)存在一個(gè)元素直到刪除干凈為止。
閉包中l(wèi)et和var的區(qū)別
我們打印的i是一個(gè)全局變量,從undefind可以看出我們聲明了一個(gè)i但是未定義,而且輸出的結(jié)果為5次5,一次性就完成了
由圖可知,輸出報(bào)錯(cuò),i未定義,我們把console.log(i)關(guān)閉
總結(jié):
let會(huì)自動(dòng)生成一個(gè)閉包,而var不能
let暫時(shí)性死區(qū) TDZ
let不允許重復(fù)聲明,同一作用域內(nèi)只能聲明一次
let新增的塊級(jí)作用域
for(作用域A){作用域B} 循環(huán)的應(yīng)用
最后對(duì)前端開(kāi)發(fā)感興趣的同學(xué),可以了解一下千鋒教育web前端培訓(xùn)班提供的web前端學(xué)習(xí)路線,包括HTML5、CSS3、JavaScript及其常用的擴(kuò)展庫(kù),能夠讓你對(duì)入門前端開(kāi)發(fā)有一個(gè)清晰的認(rèn)識(shí),想要獲取前端完整學(xué)習(xí)路線和免費(fèi)的學(xué)習(xí)資料可以添加我們的web前端技術(shù)分享交流qq群:857920838 加群找群管理領(lǐng)取即可,等你來(lái)哦~~