출처 : http://cafe.naver.com/sharonstone.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=106


return true;return false; 이게 뭔가요?
 
return; , return true; , return false;

이게 무엇인가요?

보통 함수 끝에 붙어서 나오던데.. 아래 예제처럼요.

아래는 return 만있는데.. 어떤건 트루, 폴스를 같이 리턴해주더라구요.

리턴은 뭐고, 트루나 폴스를 리턴해주면 어떤 현상이 일어나는건가요?

즉, 트루를 리턴해주면, 그 트루값이 어디로 리턴되는건가요?

function checkInput (form) {
 if (!form.name.value) {
 alert("이름을 입력하세요!");
 form.name.focus();
 return;
}


질문자가 선택한 답변 
[Re]자바스크립트 return true;return false; 이게 뭔가요? 
 
coffee0 (2004-02-07 04:47 작성, 2004-02-07 06:50 수정) 
 
 

♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧


return 은 단어 뜻 그대로 어떤 값을 반환하는 경우에 사용합니다.

true, false 외에 원하는 특정값을 return 할 수도 있습니다.

(return; 이렇게 값을 정해주지 않으면, null을 반환합니다.)


예를 들어 설명해 보겠습니다. 이게 쉽죠. ^^'

아래와 같은 소스가 있다고 합시다.


================================ 소스시작 ===================================

function fn_01(vn_name)
{
if ( fn_02(vn_name) == true ) { alert('이영애님 반갑습니다.'); }
if ( fn_02(vn_name) ==  false ) { alert('이영애님이 아니시군요.'); }
}


function fn_02(vn_name)
{
if ( vn_name == '이영애') { return true; }
if ( vn_name <> '이영애') { return false; }
}

================================= 소스끝 ====================================


1. 굳이 저렇게 사용하지 않아도 될 경우지만, 이해를 위해 저렇게 두개의 함수를 만들었습니다.

    fn_01함수가 다시 fn_02함수를 호출하고 있습니다.

2. fn_02는 vn_name이라는 변수로 받은 값이 '이영애'인지 아닌지를 체크하여, 각각 true false를 반환하고 있습니다.

3. fn_01은 fn_02가 반환한 값이 true인지 false인지에 따라 다른 메세지를 뿌리고 있습니다.



한가지 덭붓여 설명드리겠습니다. 아래와 같은 소스의 경우

================================ 소스시작 ===================================

function checkInput ()
{
 if ( frm01.title.value == '') { alert('제목을 입력하셔야 합니다.'); frm01.title.focus(); return;}
 frm01.submit();
}
================================= 소스끝 ====================================


4. 리턴값이 없는데, 리턴시키고 있습니다.

   여기서 return;을 뺀다면 어떻게 될까요. (반환하는 값이 없으니, 빼도 되겠지 하고 말입니다.)

   결론부터 말씀드리면, 안됩니다. 이유를 따져 봅시다.


    title이라는 이름의 제목을 넣는 박스에, 사용자가 제목에 글을 입력하고, "확인" 버튼(혹은 이미지)을 클릭했다고 합시다.

   클릭시 checkInput함수를 호출하여, if절에 걸리지 않고, 바로 submit가 발생하겠죠.


   이번엔 제목에 아무것도 입력하지 않고, 클릭했다고 합시다.

   그럼 if절에 걸리겠지요. 만약 if절 안에 return;이 없다면,

   메세지 띄우고, 포커스 이동후에, submit가 발생하게 됩니다.

   그렇게 되면, 제목이 없는 글이 써지게 되겠지요.


   이해 가시죠. 자바스크립트에서 return은 값의 반환뿐만 아니라, exit의 기능도 포함하는 것입니다.

   즉, "여기까지만 실행하고, 뒷부분은 실행을 안한다." 하는 것입니다.



채택율이 좋으셔서, 딴엔 자세히 답변한다고 했는데 도움이 되었는지 모르겠군요.

아무튼, 이해에 조금이나마 도움이 되었길 바라며 20000


♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧♧



-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------
<? if($use) { echo "name : " .$txtname ."<BR>"; } ?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>test</title>
<style>
td {font-size:9pt;}
.frm_td { border-bottom:1px #E1E1E1 solid; text-align:right; }
.frm_td2 { border-bottom:1px #E1E1E1 solid; }
.frm_text { border:1px #B2B2B2 solid; }
.frm_btn { cursor:hand; }
</style>
<script language="javascript">
function frm_check() {
 document.tt.txtname.value = ex();
 return;
}

function ex() {
 return;
}
</script>
</head>

<body class=mod_body>
<form name="tt" action="test123.php">
 <input type="hidden" name="use" value="1">
 <input type="text" name="txtname" readonly>
 <input type="submit" name="cmdOn" onclick="javascript:return frm_check()" value="test">
</form>
</body>

요렇게 실행해 본결과.. 전송합니다. 즉 return, return false 의 차이점은 exit기능을
사용을 하는지 않하는지와 거짓의 값을 리턴을 하는지 널(알수없는값)을 리턴하는지가 요점입니다 --;

신고
Posted by 나비 나비:D

BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
----------------------------- (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

글 보관함

달력

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Total : 894,885
Today : 43 Yesterday : 238