[JavaScript][TIL] 함수에 관하여

Trippy·2023년 10월 17일
2

JavaScript

목록 보기
5/28
post-thumbnail

함수

함수는 코드의 집합을 나타내는 자료형이며, 기본 형태는 다음과 같다.

function() {}

함수를 코드의 집합이라고 말하는 이유는 {...} 내부에 코드를 넣기 때문이다.

함수를 사용했을 때 좋은 점

  • 반복되는 코드를 한 번만 정의하고 필요 시 호출하여 사용하므로 반복 작업을 피할 수 있다.
  • 긴 프로그램을 작업 시 모듈화로 전체 코드의 가독성이 좋아진다.
  • 기능별(함수별)로 수정이 가능하므로 유지보수가 좋다.

[1] 함수 정의하기

- 함수 선언문(function declaration)

function add(x, y) {
  return x + y;
}

console.log(add(2, 3));   // 5

- 함수 표현식(function expression)

let add = function(x, y) {
  return x + y;
}

console.log(add(2, 3));   // 5

함수 표현식을 사용하면 함수를 변수에 할당하여 익명 함수를 생성할 수 있다.


- 함수 매개변수와 반환값

let add = function(x, y) {
  return x + y;
}
// 함수를 호출한다(= 사용한다)
// 함수형() => add(입력값)
// console.log(add(2, 3));

let functioResult1 = add (3, 4);
console.log(functionResult1); // 7

x와 y라는 매개변수를 받아드리고 이를 더한 값 을 반환한다.
함수를 호출한 결과값을 변수에 할당하여 사용할 수 있다.


[2] 함수 스코프

현재 실행되는 컨텍스트를 말한다. 여기서 컨텍스트는 값과 표현식이 "표현"되거나 참조 될 수 있음을 의미한다. 만약 변수 또는 다른 표현식이 "해당 스코프"내에 있지 않다면 사용할 수 없다. 스코프는 또한 계층적인 구조를 가지기 때문에 하위 스코프는 상위 스코프에 접근할 수 있지만 반대는 불가하다.

- 전역 스코프(global scope)

let x = 10;

function woogi() {
  console.log(x);
}
woogi(); // 10

전역 스코프에서 변수 x를 선언하고, 함수 woogi에서 변수를 참조한다.
전역 스코프에서 선언된 변수는 어디에서든지 참조할 수 있다.


- 지역 스코프(local scope)

function woogi() {
  let x = 10;
  console.log(x);
}
woogi(); // 10

지역 스코프에서 변수 x를 선언하고, 함수 woogi에서 변수를 참조한다.
지역 스코프에서 선언된 변수는 해당 함수 내에서만 참조할 수 있다.


- 블록 스코프(block scope)

if (true) {
  let x = 10;
  console.log(x);
}
console.log(x) // ReferenceError: x is not defined

if문 내에서 선언된 변수해당 블록 내에서만 참조할 수 있다.


[3] 화살표 함수

- 기본적인 화살표 함수

let add = (x, y) => {
  return x + y;
}
console.log(add(2, 3)); // 5

- 한 줄로 된 화살표 함수

let add = (x, y) => x + y;

console.log(add(2, 3)); // 5

함수 내부에 return문이 한 줄로 작성될 경우, 중괄호와 retur키워드를 생략할 수 있다.


- 매개변수가 하나인 화살표 함수

let square = x => x * x;

console.log(square(3)); // 9

매개변수가 하나일 경우에는 괄호를 생략할 수 있다.


Do

오늘은 강의 5주차까지 완강 하고 다시 처음부터 복습하기 시작했다.
처음 들을때는 아는 부분은 아는채로~ 모르는 부분은 모르는채로~ 지나가기 바빠서 휘발성이 짙었는데 복습을 하니 다시 복기가 되면서 머리에 확실히 자리를 잡는 것 같다.
빠른 속도로 남들보다 빨리 나가는 것 보다 기초가 탄탄함에 따라 각 요소들의 구조의 특징을 알고 있는 상태로 필요에 따라 골라 쓸 수 있는 개발자가 되는것이 더 실력 있는 개발자라고 생각하기 때문에 기초를 게을리 할 수 없어 개발의 입문길에서는 복습이 중요하다고 생각하기에 복습을 꾸준히 할 것이다.

Will

  • TIL 하루에 한 개씩 쓰기
  • 알고리즘 하루에 하나씩 풀기
  • 모던 자바스크립트 딥 다이브 책 구매하기
  • 프로젝트 구상, 기획하기
profile
감금 당하고 개발만 하고 싶어요

2개의 댓글

comment-user-thumbnail
2023년 10월 17일

우기 온앤온~.~

1개의 답글