[TIL] 23.04.09

Minkyu Shin·2023년 4월 9일
0

TIL

목록 보기
10/44
post-thumbnail

오늘의 나는 무엇을 잘했을까?

일요일이지만 마냥 쉬지 않고 조금의 공부를 한 점이 잘한 것 같다. 다음 주부터는 스케줄을 짜서 계획적으로 공부를 해보면 좋을 것 같다. 특히 학습량이 많은만큼 복습할 시간을 일요일에 갖고, 시간적 여유가 된다면 추가 공부를 해보자.

오늘의 나는 무엇을 배웠을까?

JS

1. 함수를 만드는 방법

1-1. 함수 선언 (Function Declaration)

  • 함수를 만드는 가장 기본적인 방법
function 함수이름(매개변수) {
  동작
  return 반환값
}

1-2. 함수 표현식 (Function Expression)

  • JS에서 함수는 값
function sayHi() {
  console.log('Hello!');
}

console.log(sayHi);
// 위 경우에 어떤 결과가 콘솔에 출력될까?
// 함수 소스 코드가 문자형으로 바뀌어 출력된다, 함수가 값처럼 취급되기 때문이다.
  • 따라서 변수에 할당이 가능함
const 변수 = function() {
  동작
}
  • 변수를 복사해 다른 변수에 할당하는 것처럼 함수도 복사해 다른 변수에 할당이 가능함

1-3. 함수 선언식 vs. 함수 표현식

  • 함수 선언식은 함수 선언 전에 함수가 호출되어도 문제없이 동작 -> 호이스팅이 발생하므로

  • 함수 표현식은 일반적으로 변수에 함수를 할당하는 특성 상 선언 이전에 접근이 불가

  • 함수 선언식은 함수 레벨 스코프를 갖음

  • 함수 표현식은 할당된 변수에 따라 ( var , let , const ) 스코프가 결정

1-4. 기명 함수 표현식 (Named Function Expression)

  • 함수 표현식으로 함수를 만들 때 함수에 이름을 붙여줄 수 있음
  • 함수 표현식으로 함수가 할당된 변수는 name 이라는 속성을 가짐
const sayHi = function () {
  console.log('Hello!');
}

console.log(sayHi.name) // sayHi - 이름이 없는 함수를 할당하면 변수 이름 자체를 문자열로 가짐

const sayHi = function printHello() {
  console.log('Hello!');
}

console.log(sayHi.name) // printHello - 함수에 이름을 붙여주면 함수 이름을 문자열로 가짐
  • 함수 이름은 함수 내부에서 함수 자체를 가리킬 때 사용
  • 함수 외부에서 호출할 때는 사용할 수 없음
  • e.g. printHello(); // ReferenceError (X)
  • 함수 내부에서 함수 자신을 사용하려고 하면(재귀 함수) 기명 함수 표현식을 사용하는 것이 좋음

1-5. 즉시 실행 함수 (IIFE)

  • 일반적으로는 함수를 선언한 이후 선언된 함수 이름 뒤 소괄호를 붙여 함수를 실행
  • 즉시 실행 함수는 함수 선언과 동시에 함수 실행이 됨
(function (매개변수) {
  동작
})(전달인자);
  • 함수를 괄호로 감싸 함수 표현식으로 인식하도록 함
  • 함수에 이름이 있더라도 외부에서 재사용이 불가
  • 따라서 일반적으로는 익명 함수 (anonymous function) 사용
  • 프로그램 초기화 기능, 일회성 동작을 구성할 때 주로 활용

내일의 나는 무엇을 해야할까?

  • 셀프 코드리뷰 (08:30 ~ 10:00)
  • 모던 자바스크립트 강의 수강
profile
개발자를 지망하는 경영학도

0개의 댓글