今天給大家分享:return的用法是什么?若用在for循環(huán)中,還會(huì)執(zhí)行下一次循環(huán)嗎?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分享人:聶義中
目錄
1.背景介紹
2.知識(shí)剖析
3.常見問題
4.解決方案
5.編碼實(shí)戰(zhàn)
6.擴(kuò)展思考
7.參考文獻(xiàn)
8.更多討論
1.背景介紹
什么是return?
return是javascript里函數(shù)返回值的關(guān)鍵字,一個(gè)函數(shù)內(nèi)處理的結(jié)果可以使用return返回,這樣在調(diào)用函數(shù)的地方就可以用變量接收返回結(jié)果。return關(guān)鍵字內(nèi)任何類型的變量數(shù)據(jù)或表達(dá)式都可以進(jìn)行返回,甚至什么都不返回也可以
2.知識(shí)剖析
return語句的用法
1返回函數(shù)值,語句結(jié)束函數(shù)執(zhí)行
語法為:returnexpression
functionaa(){
return1//返回?cái)?shù)字alert(1);
};
aa();
functionbb(){
return"asdf"http://返回字符串}
bb();
functioncc(){
returnfunction(){//返回函數(shù)vara=1;
}
alert(1);
}
cc();
2利用return阻止執(zhí)行某些默認(rèn)的行為。
JAVASCRIPT在事件中調(diào)用函數(shù)時(shí)用return返回值實(shí)際上是對window.event.returnvalue進(jìn)行設(shè)置。而該值決定了當(dāng)前操作是否繼續(xù)。當(dāng)返回的是true時(shí),將繼續(xù)操作。當(dāng)返回是false時(shí),將中斷操作。而直接執(zhí)行時(shí)(不用return)。將不會(huì)對window.event.returnvalue進(jìn)行設(shè)置所以會(huì)默認(rèn)地繼續(xù)執(zhí)行操作
如果函數(shù)add_onclick()返回true,那么頁面就會(huì)打開abc.htm
否則,(返回false),那么頁面不會(huì)跳轉(zhuǎn)到abc.htm,只會(huì)執(zhí)行你的add_onclick()
函數(shù)里的內(nèi)容.(add_onclick函數(shù)中控制頁面轉(zhuǎn)到abc.htm除外)
不管add_onclick()返回什么值,都會(huì)在執(zhí)行完add_onclick后打開頁面abc.htm
我們常用returnfalse來阻止提交表單或者繼續(xù)執(zhí)行下面的代碼
如果函數(shù)add_onclick()返回true,那么頁面就會(huì)打開abc.htm
否則,(返回false),那么頁面不會(huì)跳轉(zhuǎn)到abc.htm,只會(huì)執(zhí)行你的add_onclick()
函數(shù)里的內(nèi)容.(add_onclick函數(shù)中控制頁面轉(zhuǎn)到abc.htm除外)
Open
不管add_onclick()返回什么值,都會(huì)在執(zhí)行完add_onclick后打開頁面abc.htm
onclick事件時(shí)就相當(dāng)于onclick="returntrue/false"例:functioncheck()
{
if(obj.value=="")
{
window.alert("不能為空!");
obj.focus();
returnfalse;
}
returntrue;
}
調(diào)用方法返回true時(shí)才提交表單,反之則不提交,這是submit按鈕returnfalse只在當(dāng)前函數(shù)有效,不會(huì)影響其他外部函數(shù)的執(zhí)行。
return回調(diào)函數(shù)
onclick事件時(shí)就相當(dāng)于onclick="returntrue/false"例:functioncheck()
{
if(obj.value=="")
{
window.alert("不能為空!");
obj.focus();
returnfalse;
}
returntrue;
}
利用回調(diào)函數(shù)來產(chǎn)生循環(huán)效果。
var? ?i=0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//定義循環(huán)變量functionfunc1(){
i++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//改變循環(huán)變量if(i<5)
{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //小括號(hào)為循環(huán)條件
document.write(i+'');? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //這里是循環(huán)體returnfunc1();
}
}
func1();//調(diào)用函數(shù)之所以可以實(shí)現(xiàn)循環(huán),是因?yàn)檫@里利用了return的回調(diào)函數(shù),使得函數(shù)返回的是自己。
3.常見問題
若return用在for循環(huán)中,還會(huì)執(zhí)行下一次循環(huán)嗎?
代碼示例:
functiondd(){
vargroup=[];
for(vari=0;i<4;i++){
return5;
group.push(i);
}
returngroup;
}
dd();
我們可以看到,for循環(huán)只返回return所返回的值,并不會(huì)執(zhí)行下一次循環(huán),而是起到跳出循環(huán)的作用
4解決方案
5.編碼實(shí)戰(zhàn)
6.擴(kuò)展思考
除了return,還有什么方法可以讓循環(huán)被打斷?
break方法
for(vari=0;i<=10;i++){
console.log(i);
if(i==5){break;}
}
上面這個(gè)break實(shí)例,輸出的結(jié)果為:12345,當(dāng)i的值等于5的時(shí)候直接通過break跳出了循環(huán),不再繼續(xù)往下運(yùn)行。
continue方法
continue語句和break語句相似。所不同的是,它不是退出一個(gè)循環(huán),而是開始循環(huán)的一次新迭代。for(vari=0;i<=10;i++){
if(i==5){continue;}
console.log(i);
}
7.參考文獻(xiàn)
參考1:對js中return用法的詳細(xì)介紹
參考2:js中return的用法
8更多討論
1 continue break return有什么區(qū)別?
break語句會(huì)使運(yùn)行的程序立刻退出包含在最內(nèi)層的循環(huán)或者退出一個(gè)switch語句。
continue語句和break語句相似。所不同的是,它不是退出一個(gè)循環(huán),而是開始循環(huán)的一次新迭代。
return語句就是用于指定函數(shù)返回的值。return語句只能出現(xiàn)在函數(shù)體內(nèi),出現(xiàn)在代碼中的其他任何地方都會(huì)造成語法錯(cuò)誤!
鳴謝
感謝大家觀看
by聶義中
今天的分享就到這里啦,歡迎大家點(diǎn)贊、轉(zhuǎn)發(fā)、留言、拍磚~