자바스크립트 함수

최준영·2021년 9월 1일
0

함수


  • 함수 선언식 : function 함수명(매개변수) {//내용} 형태이다.
  • 함수 표현식 : var 변수명 = function() {//내용} 형태이다.
  • 함수는 매개변수와 인자의 개수가 서로 달라도 에러가 발생하지 않는다.

표현식과 호이스팅

  • 함수 선언식 구문 이전에 함수를 호출하면 해당 함수는 실행 가능하다.
  • 함수 표현식 구문 이전에 함수를 호출하면 해당 함수는 실행 불가능하다.
  • 자바스크립트는 변수나 함수의 선언식을 메모리에 먼저 저장한 뒤에 코드를 실행하기 때문이다.
/*
function catName1;
var catName2;
*/

catName1("Chloe");
catName2("Chloe");

function catName1(name) {
  console.log("My cat's name is " + name);
}
var catName2 = function(name) {
  console.log("My cat's name is " + name);
}
  • 위의 코드처럼 사전에 주석형태로 메모리에 저장해 놓는다. 선언식은 함수임을 알 수 있지만, 표현식은 함수임을 모르는 상태로 호출식이 실행되기 때문에 이런 일이 발생한다.
  • 함수 및 변수 선언식은 메모리에 저장될 뿐 코드가 이동하는 등의 일이 발생하지는 않는다.

반환값과 undefined

  • 자바스크립트 함수는 기본값이 'undefined'이며 return으로 그 값은 변경하는 것이다.
  • 따라서 void 타입이 존재하지 않는다.

arguments 객체

  • 함수가 실행되면 그 안에는 arguments라는 특별한 지역변수가 자동으로 생성된다.
  • arguments의 타입은 객체이며, 배열이 아니므로 배열 메서드는 사용할 수 없다.
function a() {
 // arguments = {'0' : 1, '1' : 2, '2' : 3}
}
a(1,2,3);

arrow function

  • var 변수명 = (매개변수) => { //내용 }; 형태로 함수를 선언할 수 있다.
  • return과 {이 붙어있다면 return과 중괄호를 생략할 수 있다.var 변수명 = (매개변수) => //내용;
profile
do for me

0개의 댓글