article thumbnail image
Published 2022. 1. 31. 04:41

함수 (function)

-> 특정 동작(기능)을 수행하는 일부 코드의 집합이다.

 

 

헬로펑크라는 함수를 선언하고 소괄호()-중괄호{} 사이에 명령들이 들어가 있다.

명령은 콘솔창에다가 어떤 로그(기록)를 남기는데 그 데이터가 1234라는 데이터를 남기겠다.
라는 한줄의 명령이 들어있는 것.

function helloFunc() {
console.log(1234);
}
helloFunc(); //1234

 

함수는 명령을 감싸고 있는 하나의 집합!
함수안에서 어떠한건 반환할수 있는데 그때 return을 사용한다.

펑션 키워드를 통해서 리턴펑크라는 이름을 만들었고, 그 안에는 리턴 키워드로 숫자 데이터 123를 
반환하도록 만들었다. 이렇게 반환한 숫자 데이터 123을 let이라는 키워드를 사용하는 a라는 변수가 
리턴펑크 함수가 호출되면 반환된 함수를 123이 받을 것이다.

우리가 만드는 함수에서는 리턴이라는 키워드를 사용해서 어떠한 자바스크립트 데이터를 
함수 밖으로 내보내기를 할수있고 그렇게 내보내진 값을 새로운 변수에다가 할당해서 추가적으로 
사용할 수 있다. (중요)

function returnFunc() {
  return 123;
}
 let a = returnFunc();
 console.log(a); //123

 

썸이라는 함수안에 소괄호가 있고 a b가 있다. 
함수안에서 a+b를해서 그값을 리턴(밖으로 내보냄) 키워드로 그 값을 나가는 구조이다.
이때 a b를 매개변수(Parameters) 라고한다.

매개변수는 어떤 개념이냐면 썸이라는 이름의 함수를 정의했고,  
썸이라는 함수를 호출(실행)할때 데이터를 집어넣을 수 있는데, 지금은 숫자 데이터 1,2로
그 데이터를 받아주는 함수안에서 사용하는 변수로 매개변수라고 한다.
변수라는것은 데이터를 저장하는곳이고, 썸이라는 함수가 실행될때, 데이터를 
ab라는 이름으로 받아서 그 내부에서 더한다음 함수밖으로 내보내기를 하고 
내보내기라는것은 실행이 될때 내보내지기때문에 실행이 되면서 a라는 변수에 내보내져 들어간다.
a라는 변수는 1+2를 더한 값을 가지고 있고(3) 함수를 실행할때 매개변수로 받으려고 하는 
그 각각의 데이터들을 인수(arguments)라고 한다.

function sum(a, b) { 
 return a + b;
}

let a = sum(1, 2);
let b = sum(7, 12);
let c = sum(2, 4);
//숫자 2는 a가 받고 숫자 4는 b가 받은 다음에 그 값을 더해서 밖으로 내보내는데
//그 내보낸값은 c 가 받는거고 2+4니까 6이다.

console.log(a, b, c); //3, 19, 6

 

 

함수라는것을 선언할 때, 함수가 호출되는 부분에서 데이터를 집어넣을 수 있고 그 데이터를 받아줄 변수라는것을 

()소괄호로 정의 할 수 있다.  그 정의된 변수를 우리는 함수 안에서만 사용하고 데이터를 (매개)받아줄 수 있다고 해서

매개변수라고 부르고 (매개변수가는 반드시 함수 안에서만 사용됨) 매개변수가 받아줄 특정한 데이터들을 인수라고 한다. 데이터는 윗처럼 숫자가 아니더라도 앞에서 정리한 모든 데이터에서 인수로 함수안까지 전달해 줄 수 있다. 

function hello() {
  consloe.log('hello~');
}
//함수선언을 하고 이름은 내맘대로 정해주면된다. -> 이름이있는 함수 -> 기명함수

let world = function () { 
//이름이 없는 함수 익명함수, 하지만 함수 부분에 이름을 지정하지 않으면 함수를 호출 할 수 없고
//쓸모없는 함수가 된다. 그래서 익명 함수들은 데이터로서 활용되거나 변수에 할당해서 사용한다.
//익명함수는 이름이 없어 호출할수 없으니 let, const라는 키워드 변수에 넣어서 사용할 수 있다. 
//익명함수를 어떤 변수에 할당하는건 함수를 선언한다고 하지않고, 함수를 표현한다고 한다.
  console.log('world~');
}

hello(); //hello~
world(); //world~

 

 

콘스트를 사용했으니 처음 지정한 값을 제외하고 재할당이 불가능함


속성부분에 함수가 할당되어있으면 '메소드(method)'임

익명함수 (함수의 표현이라고함)
함수의 역할은 함수가 어디선가 실행이되면 특별한 로직없이 어떤한 값을 반환할건데 
this는 객체가 소속되어있는 객체데이터를 의미한다.
this.name이라는것은 객체데이터안에 name이라는 속성이 가지고 있는 그 값을 의미한다.
결국, myname 안에서 getname이라는것을 실행하게 되면 myname에서 name이라는 데이터가 
가지고 있는 값을 getname의 밖으로 빠져나갈 수 있는 구조다.

const myName = { 
name: 'seo0', //문자 데이터
age: 100, //숫자 데이터
getName: function () { 
  return this.name;
 }
};

const hisName = myName.getName();
console.log(hisName); //seo0
//myname이라는 객체 데이터 안에 getname이라는 메소드를 호출(함수를 실행)하고 있다.

console.log(myName.getName()); //seo0
//콘솔 로그에다 myname이라는 객체에 있는 getname을 바로 출력해주세요.

 

 

함수는 어떤 데이터처럼 활용할 수 있고, 대표적으로 객체 데이터로 활용할 수 있다. 
그렇게 삽입된 속성을 '메소드'라고 부른다. (중요)
함수는 값으로 쓰일 수 있기 때문에 객체에 저장될 수 있는 것! (함수를 값에 담는것 === 함수 표현식)

 

'개발이야기 > JS' 카테고리의 다른 글

[JS] 연산자  (0) 2022.02.11
[JS] DOM API  (0) 2022.01.31
[JS] 조건문 (if, else)  (0) 2022.01.31
[JS] 변수 (let, const)  (0) 2022.01.31
[JS] 데이터 종류 (자료형)  (0) 2022.01.31
복사했습니다!