티스토리 뷰

조건문

특정 조건에서만 코드를 실행하고 싶을 때 if 조건문을 사용한다.
조건문이 true일 때만 실행되며, false일 때 실행할 작업을 따로 작성하고 싶으면 else if 또는 else 구문을 이용한다.

if(조건문1) {
    // 조건문1이 true일 때 실행할 코드
} else if(조건문2) {
    // 조건문1이 false이고 조건문2가 true일 때 실행할 코드
} else {
    // 조건문1, 조건문2가 모두 false일 때 실행할 코드
}

삼항조건연산자

조건 ? true일 때 실행할 코드 : false일 때 실행할 코드

if-else문을 위와 같이 삼항조건연산자를 이용해서 작성할 수 있다. 삼항조건연산자끼리 중첩도 가능하다. 한번에 작성할 수 있어서 편하고 가독성도 좋지만 코드가 간단할 때만 이용하고, 복잡해지면 if-else문을 쓰는 것이 좋다.

 

반복문

반복적인 일을 수행할 때, 일일이 긴 코드를 작성하지 않고 하나의 로직을 만든 다음, 그것을 반복하도록 할 수 있다. 반복문에는 for문과 while문이 있다.

for문

for(초기값; 조건문; 증감식) {
    // 실행할 코드
}

while문

while(조건문) {
    // 실행할 코드
}
do {
    // 실행할 코드
} while(조건문)

초기값, 조건문, 증감식이 모두 필요한 for문과 달리 while문은 조건문만 필요로 한다. 조건문이 true라면 프로그램이 영원히 끝나지 않는 무한루프를 조심해야 한다. while문을 빠져나올 수 있도록 false로 평가되는 순간이 꼭 있어야 한다.
조금 다르게 do...while은 조건없이 우선 처음 한 번을 실행하고 나서 그 다음에 또 실행할 것인지 조건을 평가한다.

 

for문과 while문의 사용은 명확하게 구분되진 않지만 대체적으로 상황에 맞게 사용하면 된다.

  • for문
    반복 횟수가 비교적 명확할 때
    문자나 배열을 순회할 때
    반복문의 중첩이 필요할 때
  • while문
    반복 횟수가 명확하지 않을 때

 

함수


함수는 입력으 받아서 내부의 코드를 실행하고 결과를 반환하는 일련의 과정의 묶음이다. 함수를 사용하는 방법은 다음과 같다.

  1. 함수를 정의한다.
  2. 함수를 호출한다.

함수 정의하기

함수를 정의하는 가장 대표적인 방법은 함수선언문과 함수표현식이다.

함수 호출하기

함수를 정의만 하면 사용할 수 없다. 함수 내부의 코드를 실행하기 위해서는 실행되길 원하는 위치에서 함수를 호출해야 한다. 호출하는 방법은 greeting()과 같이 함수명()이다. 함수표현식의 경우는 함수를 할당한 변수명()이다.

매개변수와 전달인자

functioin greeting(name) {
    console.log("hello", name);    
}

greeting("민수"); //--> hello 민수

위 예시에서 name이 매개변수이고 함수를 호출할 때 전달하는 값인 "민수"가 전달인자이다. 매개변수는 여러 개를 지정해줄 수 있고, 매개변수의 수만큼 필요한 전달인자가 전달되지 않으면 undefined값으로 초기화된다.

매개변수와 함수 내부에서 선언된 변수는 자신이 선언된 위치에 따라 유효범위가 결정된다. 이 범위를 스코프라고 한다. 스코프는 추후 학습하여 정리하도록 하자.

반환(return)

함수의 결과를 외부로 내보낼 수도 있다. 그동안의 예제처럼 함수에서 console.log()만 실행하면 그 함수를 호출했을 때 콘솔창에 메세지를 띄우고 끝이겠지만, 앞으로 함수는 더 복잡한 기능들을 수행할 것이다. 어떤 함수는 greeting()처럼 내부적으로 실행하고 끝나는 역할일 것이고, 어떤 함수는 내부적으로 실행한 뒤 그 결과값을 다른 곳에서 사용할 수 있도록 외부로 내보낼 것이다. 이 때 return 어떤값;을 사용하면 이 함수를 호출한 함수에게 값을 반환할 수 있다.

 

회고

드디어 자바스크립트의 함수가 나왔다. 스코프라는 단어도 등장했다. 첫 주가 그리워질 것이라고들 하던데 시작인가. 자 이제 시작이야 내꿈은~!
오늘 그동안 밀린 공부(주말에 했어야 할 CSS 공부..)를 마무리짓고 포스팅도 다듬어야겠다.

오늘은 세션이 없는 날이었다. 국민취업지원제도 상담이 있어서 외출을 다녀왔지만 나머지 시간들을 혼자 하려니 다같이 하는 것보다 집중이 잘 안됐다. 동기부여 세션에서 배운 것처럼 다른 사람들과 함께 한다는 느낌이 참 중요한 것 같다.

 

이전 블로그(velog.io/@hahagarden)에서 이전해온 글입니다. 

반응형
댓글