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

