[javascript] 함수란?

IT쿠키·2022년 6월 9일
1

자바스크립트 함수란?

함수는 기본적인 javascript에서 사용되는 블록요소인데 여기서 함수는 작업을 수행하거나 값을 계산하는 문장 집합 같은 자바스크립트 절차를 얘기한다.

사전적인 의미로 얘기를 하자면 함수란 자신의 외부 코드가 '호출' 할 수 있는 하위 프로그램 즉 어디서나 쓸 수 있게 만드는 프로그램이라고 생각하면 된다. 함수 역시 명령문의 시퀸스로 구성이 된다.


출처 : https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98

함수에 값을 전달하면 함수는 값을 '반환'하는 것이다.

대략 이런 느낌으로 진행이 된다.

일단 함수(function)을 사용하기 위해서는 함수를 "정의" 해줘야 한다.

function ThisisFunc(param) {
  statements
}

이렇게 보통 함수를 정의를 해주는 데

ThisisFunc
함수의 이름을 정의하고

param
함수의 전달할 인수 부분이 해당되는 부분이고

statements
함수 본문을 구성할 명령문

이렇게 해당 부분을 정의라고 해준다.

function ThisisFunc(param) {
  param.model = "XE";
}

// 함수 선언 및 함수정의를 하는 걸 얘기한다.
let myphone = {iphone: "apple", model: "XR", year: 2020};
let x, y;

x = myphone.iphone; // x 의 값은 "apple" 입니다.

ThisisFunc(myphone);
y = myphone.model; // y 의 값은 "XE" 입니다.
// (make 속성은 myphone에서 변경되었습니다.)

함수를 정의를 해줬다면 이제 함수를 호출해줘야 한다.

함수 호출
함수를 정의하는 것은 함수를 실행하는 것이 아니다! 그렇기에 함수를 정의하는 것은 간단히 함수의 이름과 기능을 만들어주는 거고 함수가 호출 될 때 무엇을 할지 지정해주는 것을 함수 호출이라고 한다. 매개변수를 가지고 지정된 행위를 해야한다. 예를 들어, 만약 여러분이 어떤 함수를 정의 했다면 이렇게 활용해야 한다

function square(n) { 
    return n*n 
}
// 정의
console.log(square(5));
// 호출

함수의 범위
함수 내에서 정의된 변수는 TDZ에 걸려서 함수의 범위에서만 활용이 가능하다. 그러나 전역변수로 설정된 함수는 모든 접근이 가능하다.
전역변수는 모든 전역변수를 액세스 할수 있고 다른 함수내에서 정의된 함수는 부모함수와 부모함수가 액세스 할수 있는 다른 변수에 정의된 모든 변수를 가져올 수 있다.

화살표 함수

화살표 함수 표현(arrow function expression)은 기존의 함수표현을 엄청나게 간단하게 정의하고 호출할 수 있는 대안이다!!! 특징은 5가지가 있는데

  • this나 super에 대한 바인딩이 없고, methods 로 사용될 수 없습니다.
  • new.target키워드가 없습니다.
  • 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없습니다.
  • 생성자(Constructor)로 사용할 수 없습니다.
  • yield를 화살표 함수 내부에서 사용할 수 없습니다.

기본적인 호출 및 사용 방법은!! 더 간단한 방법을 사용한다:)


const materials = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];

console.log(materials.map(material => material.length));
// expected output: Array [8, 6, 7, 9]


이거 하나만 해도 뚝딱하고 함수가 나오게 된다.

오늘은 함수에 대해 알아봤습니다:)

profile
IT 삶을 사는 쿠키

0개의 댓글