봉봉의 개인 블로그

2017-11-06(javascript return) 본문

입사후 공부한내용

2017-11-06(javascript return)

봉봉이네 2017. 11. 6. 13:29

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

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

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

예를들어 아래와 같은 소스가 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function function_01(pw){
    if(function_02 == true){
        alert('PW 일치')
    }
    if(function_02 == false){
        alert('PW 불일치')
    }
}
 
function function_02(pw){
    if(pw == "asdf"){
        return true;
    }
    if(pw <> "asdf"){
        return false;
    }
}
cs

function_02는 변수로 받은 pw 의 값이 기본에 있는 값(asdf)와 맞는지 아닌지를 체크하여, 각각 true false를 반환하고 있습니다.
function_01은 function_02가 반환한 값이 true 인지 false인지에 따라 다른 메세지를 뿌리게 됩니다.


또한 아래와 같은 소스의 경우에는

1
2
3
4
5
6
7
8
function insertText(){
    if(content_01.title.value == ""){
        alert('Title을 적어주세요');
        content_01.title.focus();
        return;
    }
    content_01.title.submit();
}
cs

리턴값이 없는데 리턴을 시키고 있다.
여기서 return을 빼면 문제가 발생하게 된다.
title 이라는 이름의 제목을 넣는 박스에 사용자가 title에 글을 입력하고, "확인"버튼(혹은 이미지)을 클릭했다고 하면, 클릭시 insertText() 를 호출하여, if 절에 걸리지 않고, 바로 submit이 발생한다.
하지만 제목을 넣는 박스에 사용자가 아무것도 입력하지 않고, 클릭했다고 한다면, if 절에 걸리게 된다. 만약 if 절안에 return; 이 없다면, 메세지를 띄우고, 포커스 이동후에, submit이 발생하게 되는것이다. 그렇게 되면, 제목이 없는 글이 써지는 문제가 발생하게 되는것이다.


javascript에서 return은 값의 반환뿐만 아니라, exit의 기능도 포함하는 것이다.

(여기까지만 실행후, 뒷부분은 실행하지 않겠다라는 느낌)

Comments