SEB_FE_45(코드스테이츠)/section 1.

블로깅챌린지]Unit.5 JavaScript 기초(함수) - 코드스테이츠

YTReeee 2023. 4. 21. 15:09

SEB_FE_45

Section1. Unit5. JavaScript 기초(함수)

학습 목표

  1. 함수표현식, 함수선언문으로 함수를 정의하고 호출할 수 있다.
  2. 매개변수와 전달인자에 대해 설명할 수 있다.
  3. 함수에 return문이 필요한 이유를 이해한다.
  4. 함수를 이용해 구구단 n단을 출력하는 재사용이 가능한 코드를 작성할 수 있다.

1. 함수

함수란 논리적인 일련의 작업을 하는 하나의 단위이다. 함수의 사용은 코드실행 과정을 하나의 묶음으로 묶어서 필요할 때마다 호출하여 실행하는 것이다. 이때, 특정한 코드실행 과정을 묶어서 함수를 생성하는 것을 '함수를 정의한다.'고 한다.

1) 함수 선언문 

 

2) 함수 표현식 : 함수를 변수에 할당하는 형태

 

3) 호출 

함수 내부에 있는 코드를 실행하기 위해서는 호출이 필요하다.

함수 선언식으로 작성한 함수라면 함수 코드 외부에 '함수이름()'과 같은 방법으로 함수 호출할 수 있다.

함수 표현식으로 작성한 함수를 호출하기 위해서는 '함수를선언한변수이름()'을 입력하면 된다.

//함수 선언식
function greeting () { 
  console.log('hello world')
};

greeting() // 'hello world'
//함수이름

//함수 표현식
let greeting = function () {
  console.log('hello world')
};

greeting() // 'hello world'
//변수이름

 

4) 매개변수와 전달인자

매개변수는 함수를 정의할 때 선언하고, 함수 코드 블록 안에서 변수처럼 취급된다.

//greeting이라는 함수가 name이라는 변수를 가지고 있다.
function greeting (name) {
	console.log('hello ' + name);
}

//매개변수 name에 값을 할당하는 방법
function greeting (name) {
	console.log('hello ' + name);
}

greeting('choco'); // 'hello choco'

전달인자는 함수 호출 시 소괄호에 넣는 값(위에서는 'choco')이다. 이를 통해 매개변수에 값을 할당할 수 있다.

매개변수는 여러개 사용하는 것도 가능하다. 매개변수에 맞게 전달인자를 전달하면 매개변수에 차례대로 전달된다.

매개변수의 수보다 전달인자가 적다면, 아무것도 전달되지 않은 매개변수는 undefine로 초기화된다.

주의해야 할 점은 매개변수와 함수 내부에서 선언한 변수는 함수 내부에서만 사용이 가능하다는 것이다. 이와같이 변수는 유효한 범위를 갖으며 이를 스코프라고 부른다.

 

5) return문

함수의 실행결과를 외부로 반환하는 것이며, 반환한 함수의 결과값을 함수 외부에서 사용할 수 있게 해준다.

return문은 아래와 같은 중요한 역할을 한다.

  1. 함수 내부 코드가 차례로 실행되다가 return문을 만나면 값을 반환한 후 함수는 종료된다. return문 뒤에 오는 코드는 실행되지 않는다.
  2. return문에 작성된 코드를 실행한 후 결과를 함수 외부로 리턴한다. 함수 외부에서 함수 호출 시 함수의 실행결과를 확인할 수 있다.
  3. 함수의 호출 결과를 변수에 할당할 수 있다.
  4. 함수의 호출 결과끼리의 연산도 가능하다.
function multiple(x, y) {
  return x * y;
  console.log('실행안됨')			//return문 뒤 코드는 실행 안됨
}

console.log(multiple(2,3);			//함수 외부로 반환

let result1 = multiple(2, 3);			//호출 결과를 변수에 할당
let result2 = multiple(2, 3)*multiple(5,6);	//변수끼리 연산도 가능
console.log(result1);
console.log(result2);

2. 오늘의 회고!!(하루늦은 회고ㅜㅜ)

반복문과 조건문을 이해하지 못해 너무 힘들었던 시간이었다... 

텍스트로 볼 때는 이해가 되는데 막상 코플릿 문제를 마주하게 되면 어떻게 풀어야 하는지 감조차 오지 않았다.

오늘은 페어분께서 먼저 문제들을 한번 풀어주시고, 직접 풀어보는 시간을 가졌다.

그리고 모르는 부분은 페어분이 코드리뷰를 해주면서 친절하게 안내해주셔서 너무 감사한 하루였다.

열심히 공부해서 혹시 내 도움이 필요한 페어분이 있다면 성심성의껏 내 지식을 전달해줄 수 있도록 노력해야겠다!