break、continue、return區(qū)別剖析

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;

});

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容