javascript中return,return true,return false三者的用法及區(qū)別
1.語(yǔ)法及返回方式
①返回控制與函數(shù)結(jié)果
語(yǔ)法為:return 表達(dá)式;
語(yǔ)句結(jié)果函數(shù)的執(zhí)行,返回調(diào)用函數(shù),而且把表達(dá)式的值作為函數(shù)結(jié)果返回出去
②返回控制無(wú)函數(shù)結(jié)果
語(yǔ)法為:return;
在大多數(shù)情況下,為事件處理函數(shù)如果讓其返回false,可以防止默認(rèn)的事件行為.例如,默認(rèn)情況下,點(diǎn)擊一個(gè)<a>標(biāo)簽元素,頁(yè)面會(huì)跳轉(zhuǎn)到該元素href屬性指定的頁(yè). 而return false就相當(dāng)于終止符,return true就相當(dāng)于執(zhí)行符. 在js中return false的作用一般是用來(lái)取消默認(rèn)動(dòng)作的.比如你單擊一個(gè)鏈接除了觸發(fā)你的"onclick"事件以外還要觸發(fā)一個(gè)默認(rèn)事件就是執(zhí)行頁(yè)面的跳轉(zhuǎn).所以這時(shí)候如果你想取消對(duì)象的默認(rèn)動(dòng)作就可以return false來(lái)阻止它的動(dòng)作.也就是說(shuō)如果你想用js代碼來(lái)局部改變一些數(shù)據(jù)而不引起頁(yè)面其他部位的變化,那么你就應(yīng)該在onclick事件代碼的后面加上return false;
在js中,我們通常用return false來(lái)阻止提交表單或者繼續(xù)執(zhí)行下面的代碼,通俗來(lái)說(shuō)就是阻止執(zhí)行默認(rèn)的行為.
function s1(){ if(true){ return false; } } function s2(){ m(); n(); p(); }
上面兩個(gè)例子,函數(shù)s1那樣寫(xiě)沒(méi)有問(wèn)題的,if函數(shù)體里返回出去false,終止函數(shù).而在函數(shù)s2里,如果我們?cè)趍函數(shù)里返回一個(gè)return false阻止提交,但是這并不影響函數(shù)n和函數(shù)p的執(zhí)行.在s2函數(shù)里調(diào)用函數(shù)m,那里面的return false對(duì)于函數(shù)s2來(lái)說(shuō),只是相當(dāng)于返回值,并不能阻止函數(shù)s2的執(zhí)行.return false只在當(dāng)前函數(shù)有效,并不會(huì)影響其他外部函數(shù)的執(zhí)行.
總結(jié):
return true;返回正常的處理結(jié)果.
return false;返回錯(cuò)誤的處理結(jié)果;終止處理;阻止提交表單;阻止執(zhí)行默認(rèn)的行為.
return;把控制權(quán)返回給頁(yè)面.
2.通常函數(shù)經(jīng)過(guò)一系列的處理后需要給外部返回一個(gè)值,這個(gè)值一般用return返回出去,也可以是說(shuō)return是向函數(shù)返回返回值,并終止函數(shù)的運(yùn)行.
關(guān)于return,要注意的是在函數(shù)里return后面的內(nèi)容是不再執(zhí)行的.
function a(){ return 10; document.write(50);//不執(zhí)行 } a();//10
上面的例子中,"return 10;"這個(gè)時(shí)候函數(shù)a的值會(huì)等于10,并且函數(shù)下面的內(nèi)容不再執(zhí)行,因?yàn)橄旅孢\(yùn)行函數(shù)a時(shí)輸入10.
究竟需不需要return來(lái)返回值,要看函數(shù)是來(lái)做什么,如果需要讓它返回一個(gè)值就寫(xiě)return,如果不需要它返回值,就沒(méi)必須寫(xiě)它.
function a(b,c){ return b+c; } var abc=a(5,8); console.log(abc);//13 function a(b,c){ document.write(b+c); } var abc=a(5,8);//此時(shí)頁(yè)面上會(huì)輸出13,但其實(shí)abc是沒(méi)有值的 console.log(abc);//undefined
當(dāng)然,js中的return不一定非得用在函數(shù)function中,有時(shí)候也可以用來(lái)阻止某些動(dòng)作,比如表單的提交,讓表單的提交事件返回false,那表單就不會(huì)提交:onsubmit="return false";
相關(guān)文章
JS中的Error對(duì)象及使用JSON.stringify()序列化Error問(wèn)題
這篇文章主要介紹了JS中的Error對(duì)象及使用JSON.stringify()序列化Error問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08javascript 從if else 到 switch case 再到抽象
大家覺(jué)得在接手遺留代碼時(shí),見(jiàn)到什么東東是最讓人感到不耐煩的?復(fù)雜無(wú)比的 UML ?我覺(jué)得不是。2010-07-07JavaScript常見(jiàn)的函數(shù)中的屬性與方法總結(jié)
當(dāng)定義和調(diào)用函數(shù)時(shí),JavaScript?函數(shù)對(duì)象會(huì)自動(dòng)具有一些特定的屬性,本文為大家總結(jié)了一些常見(jiàn)的屬性和方法,感興趣的小伙伴可以了解一下2023-05-05uniapp插件uview下表單無(wú)法動(dòng)態(tài)校驗(yàn)的問(wèn)題解決
最近項(xiàng)目中用到了uview?在做表單時(shí)用到了校驗(yàn),發(fā)現(xiàn)校驗(yàn)不友好的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于uniapp插件uview下表單無(wú)法動(dòng)態(tài)校驗(yàn)的問(wèn)題解決,需要的朋友可以參考下2022-12-12JS繪圖Flot如何實(shí)現(xiàn)可選顯示曲線圖功能
這篇文章主要介紹了JS繪圖Flot如何實(shí)現(xiàn)可選顯示曲線圖功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10靜態(tài)頁(yè)面實(shí)現(xiàn) include 引入公用代碼的示例
下面小編就為大家?guī)?lái)一篇靜態(tài)頁(yè)面實(shí)現(xiàn) include 引入公用代碼的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09javascript實(shí)現(xiàn)編寫(xiě)網(wǎng)頁(yè)版計(jì)算器
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)編寫(xiě)網(wǎng)頁(yè)版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08如何通過(guò)setTimeout理解JS運(yùn)行機(jī)制詳解
這篇文章主要給大家介紹了關(guān)于如何通過(guò)setTimeout理解JS運(yùn)行機(jī)制的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Javascript+XMLHttpRequest+asp.net無(wú)刷新讀取數(shù)據(jù)庫(kù)數(shù)據(jù)
Javascript+XMLHttpRequest+asp.net無(wú)刷新讀取數(shù)據(jù)庫(kù)數(shù)據(jù)2009-08-08