1.文法及返回方式
①返回控制與函數結果
文法為:return 運算式;
語句結果函數的執行,返回調用函數,而且把運算式的值作為函數結果返回出去
②返回控制無函數結果
文法為:return;
在大多數情況下,為事件處理函數如果讓其返回false,可以防止預設的事件行為.例如,預設情況下,點擊一個<a>標籤元素,頁面會跳轉到該元素href屬性指定的頁. 而return false就相當於終止符,return true就相當於執行符. 在js中return false的作用一般是用來取消預設動作的.比如你單擊一個連結除了觸發你的"onclick"事件以外還要觸發一個預設事件就是執行頁面的跳轉.所以這時候如果你想取消對象的預設動作就可以return false來阻止它的動作.也就是說如果你想用js代碼來局部改變一些資料而不引起頁面其他部位的變化,那麼你就應該在onclick事件代碼的後面加上return false;
在js中,我們通常用return false來阻止提交表單或者繼續執行下面的代碼,通俗來說就是阻止執行預設的行為.
function s1(){ if(true){ return false; }}function s2(){ m(); n(); p();}
上面兩個例子,函數s1那樣寫沒有問題的,if函數體裡返回出去false,終止函數.而在函數s2裡,如果我們在m函數裡返回一個return false阻止提交,但是這並不影響函數n和函數p的執行.在s2函數裡調用函數m,那裡面的return false對於函數s2來說,只是相當於傳回值,並不能阻止函數s2的執行.return false只在當前函數有效,並不會影響其他外部函數的執行.
總結:
return true;返回正常的處理結果.
return false;返回錯誤的處理結果;終止處理;阻止提交表單;阻止執行預設的行為.
return;把控制權返回給頁面.
2.通常函數經過一系列的處理後需要給外部返回一個值,這個值一般用return返回出去,也可以是說return是向函數返回傳回值,並終止函數的運行.
關於return,要注意的是在函數裡return後面的內容是不再執行的.
function a(){ return 10; document.write(50);//不執行 }a();//10
上面的例子中,"return 10;"這個時候函數a的值會等於10,並且函數下面的內容不再執行,因為下面運行函數a時輸入10.
究竟需不需要return來傳回值,要看函數是來做什麼,如果需要讓它返回一個值就寫return,如果不需要它傳回值,就沒必須寫它.
function a(b,c){ return b+c;}var abc=a(5,8);console.log(abc);//13function a(b,c){ document.write(b+c);}var abc=a(5,8);//此時頁面上會輸出13,但其實abc是沒有值的console.log(abc);//undefined
當然,js中的return不一定非得用在函數function中,有時候也可以用來阻止某些動作,比如表單的提交,讓表單的提交事件返回false,那表單就不會提交:onsubmit="return false";