자바스크립트 함수

웅평·2023년 7월 7일
0

함수 선언

일반적인 함수 선언

// 함수 선언
function sayHi() {
  console.log('Hi!');
}

함수 표현식

그리고 자바스크립트에서 함수는 값으로 취급될 수도 있기 때문에 변수에 할당해서 함수를 선언할 수도 있다

// 함수 표현식
const sayHi = function () {
  console.log('Hi!');
};

arguments 객체

자바스크립트 함수 안에는 arguments라는 독특한 객체가 존재한다
arguments 객체는 함수를 호출할 때 전달한 아규먼트들을 배열의 형태로 모아둔 유사 배열 객체이다

function printArguments() {
  // arguments 객체의 요소들을 하나씩 출력
  for (const arg of arguments) {
    console.log(arg); 
  }
}

printArguments('a', 'b', 'c');

Rest Parameter

파라미터 앞에 마침표 세 개를 붙여주면, 여러 개로 전달되는 아규먼트들을 배열로 다룰 수가 있게 된다
arguments객체는 유사 배열이기 때문에 배열의 메소드를 활용할 수 없는 반면, rest parameter는 배열이기 때문에 배열의 메소드를 자유롭게 사용할 수 있다

function printArguments(...args) {
  // arguments 객체의 요소들을 하나씩 출력
  for (const arg of arguments) {
    console.log(arg); 
  }
}

printArguments('a', 'b', 'c');

Arrow Function

// 화살표 함수 정의
const getTwice = (number) => {
  return number * 2;
};

Arrow function이 일반 함수와 차이점
arguments 객체가 없고, this가 가리키는 값이 일반 함수와 다르다

this

const user = {
  firstName: 'kim',
  lastName: 'somsom',
  getFullName: function () {
    return `${this.firstName} ${this.lastName}`;
  },
};

console.log(user.getFullName()); // kim somsom

this는 메소드를 호출한 객체를 가리킨다.

참고
코드잇

0개의 댓글