📝
서은 STUDY_SCRIPT
  • JAVASCRIPT 기록
  • JAVASCRIPT 문법정리
    • 데이터 저장하기
    • 데이터 불러오기
    • 데이터 실행하기
    • 데이터 제어하기
    • 면접질문 정리
  • PHP를 이용한 사이트 작업
    • PHP와 MySQL
      • 댓글쓰기
      • 회원가입
      • 로그인
      • 게시판
        • 페이지네이션 & 게시글보기
        • 수정/삭제/목록/검색
  • 생활코딩 JavaScript
    • JavaScript 입문수업
      • Basic
        • 자바스크립트 기본 세팅
        • 데이터타입
        • 변수
        • 연산자
        • 조건문
        • 반복문
        • 함수
        • 배열
        • 객체
        • 모듈
        • 정규표현식
      • 함수지향
        • 유효범위
        • 값으로서 함수
        • 값으로서 콜백
        • 클로저
        • arguments
        • 함수의 호출
      • 객체지향
        • 생성자와 new
        • 전역객체
        • this
        • 상속
        • Prototype
        • 표준내장객체의 확장
        • Object
        • 데이터 타입
        • 복제 & 참조
    • JavaScript Basic
      • 자바스크립트란?
      • 데이터타입
      • 변수와 대입연산자
      • 제어할 태그 선택
      • 비교연산자와 불리언
      • 조건문 if
      • 리팩토링
      • 배열 [ ]
      • 반복문 while
      • 배열과 반복문
        • 배열과 반복문의 활용
      • 함수
        • 함수의 활용
      • 객체 { }
        • 객체와 반복문 for~in
        • 프로퍼티와 메소드
        • 객체의 활용
      • 파일로 쪼개서 정리정돈
      • 라이브러리 & 프레임워크
      • UI & API
    • Web Browser
      • JavaScript란?
      • BOM
        • 전역객체 window
        • 사용자와 커뮤니케이션
        • Location 객체
        • Navigator 객체
        • 창 제어
      • DOM
        • 제어 대상 찾기
        • jQuery
        • HTMLElement
        • Element 객체
          • 식별자 API
          • 조회 API
          • 속성 API
        • Node 객체
          • Node 관계 API
          • Node 종류 API
          • Node 변경 API
          • jQuery 노드 변경 API
          • 문자열로 노드 제어
        • HTMLCollection
      • 이벤트
        • 이벤트 등록
        • 이벤트 전파(버블링과 캡처링)
        • 이벤트 기본 동작 취소
        • 이벤트 타입
      • 네트워크 통신
        • Ajax
        • JSON
  • NOMAD JAVASCRIPT
    • VanillaJS
      • Why JS?
      • ES5, ES6
      • Basic
        • Alert & Console
        • Variable
        • Data Types
        • Array & Object
      • Function
      • DOM
        • Event & Event handler
        • Conditional
        • Function Practice
      • Momentum App
        • Making a JS Clock
        • Saving the User Name
        • To-Do List
        • Image Background
        • Getting Weather
  • DREAM CODING
    • 자바스크립트 기초 강의 (ES5+)
      • JavaScript 역사
      • async & defer / Strict Mode
      • Variable / Hoisting / Data Type
      • Operator / if / Loop
      • Function
        • 함수의 선언
        • 함수의 표현
      • Class
      • Object
      • Array
      • Array API
      • JSON
      • Callback
      • Promise
      • Async & Await
  • WEB BOS
    • #JavaScript30
Powered by GitBook
On this page
  • First-class function
  • 1. 함수 표현식 (Function Expression)
  • 2. 콜백 함수 (Callback Function using function expression)
  • 3. 화살표 함수 (Arrow Function)
  • 4. IIFE (Immediately Invoked Function Expression)
  • Quiz! Function Calculate

Was this helpful?

  1. DREAM CODING
  2. 자바스크립트 기초 강의 (ES5+)
  3. Function

함수의 표현

First-class function

  • functions are treated like any other variable can be assigned as a value to variable : 함수는 다른 변수와 마찬가지로 변수에 할당이 됨

  • can be passed as an argument to other functions : 함수에 parameter로 전달이 됨

  • can be returned by another function : 함수를 return값으로도 return이 됨

1. 함수 표현식 (Function Expression)

  • a function declaration can be called earlier than it is defined (hoisted) : 함수가 선언되기 전에도 먼저 호출 가능, 자바스크립트 엔진이 선언된 것을 제일 위로 올려주기 때문

  • a function expression is created when the execution reaches it

함수 표현식에서는 함수명을 생략할 수 있음 → 익명함수 사용

function sum(a, b) {
  return a + b;
}
const print = function () { // anonymous function(익명 함수)
  console.log("print");
};
print();
const printAgain = print;
printAgain();
const sumAgain = sum;
console.log(sumAgain(1, 3));

2. 콜백 함수 (Callback Function using function expression)

함수를 전달해서 조건이 맞을 때 호출할 수 있는 함수

파라미터로 함수를 전달받아 함수의 내부에서 실행하는 함수 다른 함수에 매개변수로 넘겨준 함수

function randomQuiz(answer, printYes, printNo) {
  if (answer === "love you") {
    printYes();
  } else {
    printNo();
  }
}
// anonymous function
const printYes = function () {
  console.log("yes!");
};
// named function
// better debugging in debugger's stack traces
// recursions
const printNo = function print() {
  console.log("no!");
  // print(); // recursions : 함수 안에서 함수 자신을 호출하는 것으로 이 예시처럼 쓰면 무한 로딩.
};
randomQuiz("wrong", printYes, printNo); //no!
randomQuiz("love you", printYes, printNo); //yes!

3. 화살표 함수 (Arrow Function)

function 키워드 대신 화살표( => )를 사용하여 간략한 방법으로 함수를 선언 할 수 있음

// const simplePrint = function () {
//   console.log('simplePrint!');
// };

const simplePrint = () => console.log("simplePrint!");
const add = (a, b) => a + b;
const simpleMultiply = (a, b) => {
  // do something more
  return a * b;
};
simplePrint();

4. IIFE (Immediately Invoked Function Expression)

함수를 선언함과 동시에 호출, 자바스크립트에서 함수를 바로 실행하고 싶을 때 사용

(function hello() {
  console.log("IIFE");
})();

Quiz! Function Calculate

// Fun qiuz time💖
// function calculate(command, a, b)
// command: add, substract, divide, multiply, remainder

function calculate(command, a, b) {
  switch (command) {
    case 'add':
      return a + b;
    case 'substract':
      return a - b;
    case 'divide':
      return a / b;
    case 'multiply':
      return a * b;
    case 'remainder':
      return a % b;
    default:
      throw Error('unknown command')
  }
}
console.log(calculate('add', 2, 3));
Previous함수의 선언NextClass

Last updated 3 years ago

Was this helpful?