이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[JavaScript] function

  • 2022.11.23 15:57
  • Programming Language/JavaScript
반응형

 

 

 

1. function 키워드

 

 

 

자주 사용하는 방식이다.

 

 

2. Literal

 

 

function 키워드로 함수를 정의한 후 해당 함수를 사용하는 경우가 많지만, 리터럴 방식으로도 함수를 정의할 수 있다.

 

 

리터럴 방식을 사용할 때는 익명 함수를 사용한다.

x(4, 3) 을 실행 시 12를 반환한다.

 

 

3. Constructor

 

 

 

 

자바스크립트의 built_in 함수인 Function을 사용해 함수를 정의할 수 있다.

 

 

 

4. Self Invoking

 

 

 

정의 후 스스로를 호출한다.

재사용 할 수 없다.

 

 

5. lambda (arrow)

 

 

 

 

람다식을 사용해 함수를 간단하게 표현 할 수 있다.

인자가 하나면 괄호를 생략할 수 있지만 인자가 없거나 두 개 이상인 경우는 괄호를 생략할 수 없다.

 

 

 

Hoisting

 

자바스크립트는 다른 언어와는 다르게 호이스팅을 지원한다.

여기서 호이스팅은 변수나 함수의 선언을 최상단으로 끌어올리는 작업을 말한다.

 

 

 


 

 

 

 

자바스크립트에서 함수는 객체로 생각할 수 있다.

따라서 built_in 함수인 arguments.length 와 toString(), call(), apply() 함수를 실행할 수 있다.

 

arguments.length 함수로 받는 인자의 수를, toString() 함수로 함수를 문자열로 변환한 값을 얻을 수 있다.

 

 

 

call 과 apply 모두 함수를 호출할 때 객체를 전달하기 위해 사용된다.

call은 인자를 따로 전달하고, apply는 인자를 배열로 묶어서 전달하는 차이가 있다.

 

 

함수에 파라미터로 값이 전달되는 경우 파라미터는 타입을 정의하지 않고 사용한다.

인자가 제대로 전달됐는지도 확인하지 않고 그냥 실행하기 때문에 주의해야 한다.

 

 

 

 

인자로 숫자를 하나만 보냈다.

다른 언어 같으면 오류가 발생하겠지만, 자바스크립트는 그대로 실행한다.

 

함수 내부에서 인자가 정상적으로 전달됐는지 확인하자.

 

 

 

 

함수 내부에서 argument를 사용해 전달받은 인자를 확인할 수 있다.

 

인자는 복사돼 전달되기 때문에 객체를 인자로 넘길 시 참조 값이 넘어간다.

따라서 함수 내부에서 전달받은 객체를 조작하면 실제 객체가 바뀌니 조심하자.

 

 

 

 

 

 

 

 

 

반응형
저작자표시 (새창열림)

'Programming Language > JavaScript' 카테고리의 다른 글

[JavaScript] BOM  (0) 2022.12.09
[JavaScript] Object  (0) 2022.11.22
[JavaScript] AJAX  (0) 2022.11.08
[JavaScript] JQuery  (1) 2022.11.08
[JavaScript] JSON  (0) 2022.10.25

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [JavaScript] BOM

    [JavaScript] BOM

    2022.12.09
  • [JavaScript] Object

    [JavaScript] Object

    2022.11.22
  • [JavaScript] AJAX

    [JavaScript] AJAX

    2022.11.08
  • [JavaScript] JQuery

    [JavaScript] JQuery

    2022.11.08
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (678)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (7)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바