首先return作為返回關(guān)鍵字,他有以下兩種返回方式
1.返回控制與函數(shù)結(jié)果
語(yǔ)法為:return 表達(dá)式; 語(yǔ)句結(jié)束函數(shù)執(zhí)行,返回調(diào)用函數(shù),而且把表達(dá)式的值作為函數(shù)的結(jié)果
2.返回控制無(wú)函數(shù)結(jié)果
語(yǔ)法為:return;在大多數(shù)情況下,為事件處理函數(shù)返回false,可以防止默認(rèn)的事件行為.例如,默認(rèn)情況下點(diǎn)擊一個(gè)<A>元素,頁(yè)面會(huì)跳轉(zhuǎn)到該元素href屬性指定的頁(yè).
例如:<a href="http:www.baidu.com;alert(11);return false;alert(22)" rel="external nofollow" >鏈接</a> <!-- 只會(huì)執(zhí)行了alert(11);-->
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)。所以如果你想取消對(duì)象的默認(rèn)動(dòng)作就可以return false。也就是說(shuō)如果你想用JS代碼來(lái)局部改變一些數(shù)據(jù)而不引起頁(yè)面其他部位的變化,那么你就應(yīng)該在該onclick事件代碼的后面加上return false;
例如:
<input type="submit" onclick="submitAction(); return false;" />
submitAction 方法里面有提交表單的動(dòng)作。如果不加 return false,在執(zhí)行完 submitAction 之后,submit 按鈕還會(huì)繼續(xù)執(zhí)行它的默認(rèn)事件,就會(huì)再次提交表單。這可能就是很多錯(cuò)誤的根源。
的確,return false的含義不是阻止事件繼續(xù)向頂層元素傳播,而是阻止瀏覽器對(duì)事件的默認(rèn)處理。
在js中,我們常用return false來(lái)阻止提交表單或者繼續(xù)執(zhí)行下面的代碼,通俗的來(lái)說(shuō)就是阻止執(zhí)行默認(rèn)的行為。 例如下面的例子:
眾所周知,在表單中加上onsubmit="return false;"
可以阻止表單提交。
<form action="index.jsp" method="post" onsubmit="submitTest();"> <INPUT value="www"> <input type="submit" value="submit"></form> <SCRIPT LANGUAGE="JavaScript"> function submitTest() { // 一些邏輯判斷 return false; } </SCRIPT>
以上代碼實(shí)際情況是表單正常提交,若想它不提交,應(yīng)該將
<form action="index.jsp" method="post" onsubmit="submitTest();">
改為
<form action="index.jsp" method="post" onsubmit="return submitTest();">
總的來(lái)說(shuō)在js中對(duì)于return用法的三種情況的總結(jié)如下:
retrun true; 返回正確的處理結(jié)果。
return false;返回錯(cuò)誤的處理結(jié)果;終止處理;阻止提交表單;阻止執(zhí)行默認(rèn)的行為。
return;把控制權(quán)返回給頁(yè)面。
總結(jié)
以上所述是小編給大家介紹的JavaScript中的return布爾值的用法和原理解析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com