js寫了retrun後,後面代碼卻還是在執行

起因

項目中寫了一個函數:判斷數組,如果有不符合的地方,就return,結束函數;否則繼續進行後續處理。

代碼

function a(){
		$("input[name='a[]']").each(function(){
            var vid=$(this).val();
            if (vid==null || vid==""){
                alert("流量必須填寫");
                return false;
            }
        });
        後續處理。
}

但是,我發現,這樣寫的話,就算數組return了以後,後續代碼還是會繼續執行。

原因

for循環內的return,就是類似break。不是函數返回。所以,要想達到中斷效果,還是要加上一個flag之類的。
例如:


function a(){
		var checkoutFlag = true;
		$("input[name='a[]']").each(function(){
            var vid=$(this).val();
            if (vid==null || vid==""){
                alert("流量必須填寫");
                checkoutFlag=false;
                return false;
            }
        });
        if(checkoutFlag==true){
        	後續處理。。
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章