break、continue
一般用于for循環(huán)、swith語句中;
break? --? 用于終止循環(huán),跳出循環(huán); continue -- 用于跳過本層循環(huán),直接執(zhí)行下層循環(huán)語句;
for(vari=0;i++;i<4){
if(i==2){
break;
}
console.log(i);
}
//最終將會(huì)輸出:0 1
?
for(vari=0;i++;i<4){
if(i==2){
continue;
}
console.log(i);
}
//最終將會(huì)輸出:0 1 3
?
return
常用于函數(shù)中;
return -- 用于跳出return當(dāng)前所在的函數(shù),return后面的函數(shù)語句將不再執(zhí)行;
return 深層解析
1. 事件冒泡 :當(dāng)一個(gè)元素接收到事件的時(shí)候 會(huì)把他接收到的事件傳給自己的父級(jí),一直到window 。(注意這里傳遞的僅僅是事件 并不傳遞所綁定的事件函數(shù)。所以如果父級(jí)沒有綁定事件函數(shù),就算傳遞了事件 也不會(huì)有什么表現(xiàn) 但事件確實(shí)傳遞了。但是如果父級(jí)有此事件,將會(huì)執(zhí)行;)
2. return false一般用來阻止瀏覽器的默認(rèn)行為,何為默認(rèn)行為,如表單提交,或者當(dāng)我們點(diǎn)擊一個(gè)超鏈接時(shí),除了要觸發(fā)它的點(diǎn)擊事件外,還會(huì)觸發(fā)瀏覽器的默認(rèn)跳轉(zhuǎn)請(qǐng)求(href屬性),所以我會(huì)使用return false來阻止瀏覽器的默認(rèn)行為;
這種return false阻止默認(rèn)行為存在一定的隱患,其實(shí)return false進(jìn)行了三種操作:
(1)、阻止默認(rèn)行為;(event.preventDefault)
(2)、阻止冒泡;(event.stopPropagation)
(3)、跳出函數(shù),不再執(zhí)行函數(shù)中的語句;
當(dāng)我們?cè)趯懸粋€(gè)比較大的程序的時(shí)候,就有可能出現(xiàn)不可預(yù)知的錯(cuò)誤,這時(shí)候最安全、最妥當(dāng)、最不容易出錯(cuò)的方案就是,我們針對(duì)不同的情況使用對(duì)應(yīng)的行為;
如果我們只想阻止瀏覽器的默認(rèn)行為,那我們就使用event.preventDefault;
如果我們只想阻止冒泡,不想讓它影響包含它的父元素及其祖先元素,那我們就是用event.stopPropagation;
在循環(huán)語句的使用
for循環(huán)語句
//break - 終止循環(huán); continus - 跳過本層循環(huán),直接進(jìn)入下層循環(huán);
for(vari=0;i++;i<4){
if(i==2){
break;
}
console.log(i);
}
//最終將會(huì)輸出:0 1
?
for(vari=0;i++;i<4){
if(i==2){
continue;
}
console.log(i);
}
//最終將會(huì)輸出:0 1 3
?
$.each();
// return false 等同于 break,終止循環(huán); return true 等同于 continue,跳過本層循環(huán);
vardata=["a","b","c"];
$.each(data,function(dataItem){
if(dataItem=="b"){
returnfalse;
}
console.log(dataItem);
});
//最終輸出:a
?
vardata=["a","b","c"];
$.each(data,function(dataItem){
if(dataItem=="b"){
returntrue;
}
console.log(dataItem);
});
//最終輸出:a? c
?
forEach(); 暫時(shí)沒有終止forEach和跳過forEach本層循環(huán)的語句;可以將其循環(huán)語句改寫為:
//1.使用some函數(shù)
varary=["a","b","c","d"];
?
ary.some(function(value,index,_ary) {
console.log(index+": "+value);
returnvalue==="b";
});
?
//2.使用every函數(shù)
varary=["a","b","c","d"];
?
ary.every(function(value,index,_ary) {
console.log(index+": "+value);
returnvalue.indexOf("b")>-1;
});
?