JavaScript返回空值return;的作用

簡單講:return;只是退出當前函數。

要說明JavaSctipt返回空值return;的作用,我們先看看 return 的一些細節知識,如:onClick='return add_onclick()' 與 onClick='add_onclick()' 的區別。

JavaScript 在事件中調用函數時用return返回值,實際上是對 window.event.returnvalue 進行設置,而該值決定了當前操作是否繼續。

  • 當返回的是 true 時,將繼續操作。
  • 當返回的是 false 時,將中斷操作。

而直接執行時(不用return),將不會對window.event.returnvalue進行設置,所以會默認地繼續執行操作。例如,在

<a href="abc.htm" onclick="return add_onclick()">Open</a>

中,如果函數 add_onclick() 返回 true, 那麼頁面就會打開 abc.htm。否則(返回 false),頁面不會跳轉到 abc.htm,只會執行你的 add_onclick() 函數裏的內容(add_onclick函數中控制頁面轉到 abc.htm除外)。而不帶 return 的語句:

<a href="abc.htm" onclick="add_onclick()">Open</a>

不管 add_onclick() 返回什麼值,都會在執行完 add_onclick() 後打開頁面 abc.htm。

 

return 是 Javascript 裏函數返回值的關鍵字,一個函數內處理的結果可以使用return 返回,在調用函數的地方就可以用變量接收返回結果。return 關鍵字內任何類型的變量數據或表達式都可以進行返回,甚至什麼都不返回也可以比如

function NullReturn(IsNull)
{
    if(IsNull==true)
    {
        return;
    }
}

這樣寫也是可以的,這裏的意思是返回空(null),所以有的時候return 的作用就是用來終止函數執行。再比如,不加return 的情況:

<html>
<head>
<title>return驗證測試</title>
<script language="javascript">
function Login_Click()
{
    if(document.form1.UsName.value=="")
    {
        alert('用戶名爲空');
    }
    if(document.form1.UsPwd.value=="")
    {
        alert('密碼爲空');
    }
    alert('登陸成功');
}
</script>
</head>
<body>
    <form name="form1">
        <input type="text" name="UsName" >用戶名
        <input type="password" name="UsPwd">密碼
        <input type="button" name="Login" onClick="Login_Click();" >登陸
    </form>
</body>
</html>

和加 return 的情況:

<html>
<head>
<title>return驗證測試</title>
<script language="javascript">
function Login_Click()
{
    if(document.form1.UsName.value=="")
    {
        alert('用戶名爲空');
        return;
    }
    if(document.form1.UsPwd.value=="")
    {
        alert('密碼爲空');
        return;
    }
    alert('登陸成功');
}
</script>
</head>
<body>
    <form name="form1">
        <input type="text" name="UsName" >用戶名
        <input type="password" name="UsPwd">密碼
        <input type="button" name="Login" onClick="Login_Click();" >登陸
    </form>
</body>
</html>

運行就會發現加return 和不加return 的區別,最簡單的測試辦法,上面的兩個例子什麼都不輸入直接登陸,會有如下的反應:

不加 return 的現象是先提示用戶名沒輸入,然後提示密碼沒輸入,也就是說,程序會繼續執行下去;

加了 return 之後,遇到一個沒輸入之後就不再繼續檢測;

return false 表示返回一個 false 值,也就是說提交是不成功的,就是不會提交上去。

return true 表法返回一個 true 值,也就是提交了,不管你輸入沒有輸入值,都會提交到action指定頁面。

 

https://www.cnblogs.com/weiwang/archive/2013/08/19/3268374.html

另外參考連接中的文章及其評論。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章