반복문 함수

Subin Ryu·2024년 8월 26일

함수 특징

  • javascript는 절차적 언어라 함수가 중요해서 sub-program이라고도 불림(프로그램 안 작은 단위의 기능을 수행)

  • 함수는(function) object이다.

  • 함수는 input과 output 그리고 이름이 중요하다.

  • 한가지 task를 실행하거나 값을 계산하기 위해 쓰임.

  • 하나의 함수는 한가지 일만 하도록 한다.

  • 변수이름은 명사이지만 함수이름은 동사형태로 한다.

함수와 typescript

  • javascript의 함수를 봐서는 매개변수의 자료형을 알 수 없음
    -> typescript 사용
  • typescript 홈페이지의 playground에서 typescript로 코드 작성하면 javascript코드로 변환해줌
//typescript
function printMessage(message: string): number{
  console.log(message);
  return 0;
}
//javascript
"use strict";
function printMessage(message){
  console.log(message);
  return ;
}

함수와 object

  • premitive 변수에는 값이 저장되고 object에는 reference가 저장된다.
fnction changeName(obj){
  obj.name='coder';
}
const lucas = {name:'lucas'};
changeName(lucas);
console.log(lucas); // coder
즉, object의 주소가 저장되어 있는 lucas는 상수라 변경될 수 없지만, lucas안의 name이라는 변수는 변경 가능하다.

Degault parameters (ES6에서 추가됨)

  • 파라미터에 기본값을 지정함
fucntion showMessage(message, from = 'unknown'){
  console.log(`${message} by ${from}`)
}
showMessage('Hi') // Hi from unknown

배열 파라미터

출력하는 반복문 3가지 방법

function printAll(...args){
  //첫번째
  for(let i=0;i<args.length;i++){
    console.log(args[i]);
  }
  //두번째 for of
  for(const arg of args){
    console.log(arg);
  }
  //세번째 forEach()
  args.forEach((el)=>console.log(el))
}

함수는 object이다.

  • 함수 선언뒤 속성값 이용 가능
function example{
  console.log("example");
}
example.length; // lenght 등 다양한 속성 사용 가능

함수 return

  • return이 없는 함수는 return undefined로 정의한 것과 같음
  • 함수안에 조건문이 있다면 return을 빠르게 해서 탈출하게 하라
  • 함수 안에서 if문이 있을 때: 조건이 맞지 않는 경우를 먼저 설정해 return을 해서 빨리 빠져나가게 해주는 것이 좋음

함수 expression

  • function declearion Vs function expression
  • function declearion은 일반적인 함수 선언 사용법
    : 호이스팅이 됨
  • function expression은 함수를 선언함과 동시에 변수에 할당
    : 변수에 할당 되었으므로 호이스팅이 안됨

콜백함수

  • 함수에 파라미터로 함수를 전달하는 것
function test(answer, printYes, printNo){
  if(answer == 'hi'){
    printYes();
  }else{
    printNo();
  }
}
const printYes = ()=> console.log('Yes');
const printNo = ()=> console.log('No');
test('hello', printYes, printNo); // No
test('hi', printYes, printNo); // yes

-디버깅할때 함수를 확인 하기 위해 함수이름을 지정해줌
-arrow 함수의 경우 한줄 이상이면 return을 따로 써줘야 함

IIFE : Immediately Invoked Function Expression

  • 함수 선언과 동시에 호출
(function hello() {
  console.log('IIFE');
})();// IIFE
profile
개발블로그입니다.

0개의 댓글