for 뒤에 오는 소괄호(())에는 각각 초기값, 조건식, 증감식이 들어갑니다.
코드블록에는 반복해서 실행할 코드가 들어갑니다. for문을 구성하는 각 요소에 대해 하나하나 자세히 살펴보겠습니다.
초기값: 증감식 반복 횟수를 카운트하는 역할을 하는 변수입니다. (이때 변수는 정수를 의미하는 ‘integer’의 약자인 i를 주로 사용합니다.)
초기값은 반복문의 코드블록 내부에서만 유효합니다.
조건식: 코드블록 내부의 코드를 실행 여부를 결정합니다. true일 경우에는 코드를 실행하며, false일 경우 반복문이 종료됩니다.
증감식: 코드블록 내부의 코드를 실행한 후 초기값으로 선언된 변수를 증가 또는 감소시키기 위한 표현식입니다.
반복문은 중첩이 가능합니다. 다시 말해 반복문 내부에 또 다른 반복문을 사용할 수 있습니다.
while문을 사용할 때는 무한루프를 주의해야 합니다.
무한루프란 반복문이 종료되는 조건식이 항상 참으로 평가되어 무한히 반복되는 현상을 말합니다.
do…while문
do…while문은 while 뒤에 오는 조건식이 true로 평가되는 동안 do 뒤에 오는 코드블록 내부의 코드를 반복하여 실행합니다. 단, 이 경우 do의 코드블록 내부의 코드가 최소 한 번은 실행됩니다.
함수선언문과 함수표현식
JavaScript에서 함수를 정의하는 방법은 여러 가지가 있습니다. 그중에서 가장 대표적인 함수 정의 방법인 함수선언문과 함수표현식을 배워보도록 하겠습니다.
// 함수선언문으로 정의한 함수
function greeting () {
console.log('hello world')
};
변수를 선언할 때 let키워드를 사용하듯, 함수를 정의할 때는 function 키워드를 사용합니다. function 키워드 다음에는 함수명을 지정해 줍니다. 그 뒤에는 소괄호(())를 입력해야 합니다. 소괄호 안에는 함수 내부에서 사용할 수 있는 매개변수를 사용할 수 있습니다.
이번에는 직접 함수선언문으로 함수를 정의해 보겠습니다.
함수는 호출되었을 때만 코드블록 내부의 코드가 실행됩니다.** 함수 호출에 관련된 내용은 다음 시간에 다루도록 하겠습니다.
이번에는 함수표현식으로 똑같은 함수를 정의해 보겠습니다.
// 함수표현식으로 정의한 함수
let greeting = function () {
console.log('hello world')
};
다시 말해, 함수 호출이란 함수를 실행시키는 명령을 전달하는 것과 같습니다.
함수선언문으로 정의한 함수를 호출해 보겠습니다.
이처럼 함수를 정의할 때 지정한 함수명 뒤에 소괄호(())를 붙이면 함수를 호출할 수 있습니다.
함수선언문이 아닌 함수표현식으로 정의한 함수는 어떻게 호출할까요? 함수표현식으로 정의한 함수는 선언한 변수명에 소괄호를 붙여주면 됩니다.
매개변수는 함수를 정의할 때 선언하고, 함수 코드 블록 안에서 변수처럼 취급됩니다. 앞서 설명한 것처럼 함수를 정의할 때 소괄호(())에 매개변수를 추가할 수 있습니다. 이렇게 추가된 매개변수는 함수 내부에서 마치 변수와 같은 역할을 하게 됩니다. 바로 전달인자를 사용하면 됩니다.
함수를 호출할 때 소괄호 안에 값을 넣음으로써 매개변수에 값을 할당할 수 있습니다. 이것을 바로 전달인자라고 합니다. 이처럼 매개변수와 전달인자를 활용하면 함수 외부에서 함수 내부로 값을 전달할 수 있습니다.
이처럼 매개변수와 함수 내부에서 선언한 변수는 자신이 선언된 위치에 따라 유효범위가 결정됩니다. 변수가 유효한 범위를 스코프라고 부릅니다. 스코프는 굉장히 중요한 개념이기 때문에 추후에 더 자세하게 다루도록 하겠습니다. 지금은 함수 안에서 선언된 변수는 함수 내부에서만 사용 가능하다는 정도로 알고 계시면 충분합니다.