小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ES6學(xué)習(xí)--let關(guān)鍵字

 復(fù)雜網(wǎng)絡(luò)621 2016-09-19
ES6中新增加了let命令,用它聲明的變量,只在代碼塊內(nèi)有效。
什么是代碼塊?

if(true){
let a=1;
console.log(a);
}
現(xiàn)在if語(yǔ)句用{}包裹起來(lái)的部分,算是代碼塊;

for(let i=0;i<10;i++){
console.log(i);
}
console.log(i);
在for循環(huán)中{}包裹起來(lái)的部分是代碼塊;但是{}包裹起來(lái)的部分,能夠訪問(wèn)到for語(yǔ)句的循環(huán)條件,應(yīng)該說(shuō)在for循環(huán)中,循環(huán)條件和{}包裹來(lái)的部分,都是代碼塊,用let,在這里面聲明的變量,在外面是訪問(wèn)不到的。

while循環(huán)里面呢?
let a=10;
while(a<12){
a=a+1;
let b=a+1;
console.log(b);
}
console.log(b);
在這段代碼里面,window.a是undefined, b在while循環(huán)外面是訪問(wèn)不到的。

在es5中,如果我們要實(shí)現(xiàn)下面的需求:
var arr=[];
for(let i=0;i<10;i++){
arr[i]=function(){
console.log(i);
}
}
a[2]();
這里一定要用到閉包。下面代碼是用閉包來(lái)實(shí)現(xiàn)的:
var arr=[];
for(var i=0;i<10;i++){
(function(val){
arr[val]=function(){
console.log(val);
}
})(i)
}
這樣,在控制臺(tái)里面輸入arr[0](),會(huì)得到0, arr[1](),會(huì)得到1.

關(guān)于閉包的使用,這里有一個(gè)比較經(jīng)典的例子。頁(yè)面上有5個(gè)元素,都是a標(biāo)簽,你可以這樣來(lái)生成并附加到頁(yè)面上一個(gè)id為abc的div標(biāo)簽中:
for(let i=0;i<5;i++){ 
    let str="<a href='javascript:void(0)' id="+i+">"+i+"</a>" 
    $("#abc").append(str); 
}
針對(duì)這些a標(biāo)簽元素,有這樣一個(gè)需求,點(diǎn)擊一個(gè)a標(biāo)簽,彈出一個(gè)提示框,提示框中顯示這個(gè)a標(biāo)簽的id號(hào)碼。下面是實(shí)現(xiàn)代碼:
for(var i=0;i<5;i++){
(function(a){
$("#"+a+"").on('click',function(){
alert(a);
})
})(i)
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多