[TIL] JS: 드림코딩 강의노트 02

송나은·2021년 2월 13일
0

JavaScript

목록 보기
13/23

Function

  1. 재사용이 가능하다.
  2. 하나의 함수는 한 가지의 일만 하도록 해야한다.
  3. command, verb 형태로 정의하는 게 좋다
  4. function은 obeject이기 때문에 변수로 사용할 수 있다.

TypeScript에서는 Parameter와 Return되는 값의 DataType을 명시해야 한다.

Parameter

  • premitive parameter
    메모리에 value가 저장되어 value가 전달된다.
  • object parameter
    메모리에 reference가 저장되어 reference가 전달된다.
function changeName(obj){
  obj.name = 'coder';
}
const naeun = {name: 'naeun'};
changeName(naeun);
console.log(naeun); // {name: 'coder'}
  • Default parameter (ES6)
    parameter값이 전달되지 않을 때 default 값을 정해 놓을 수 있다.
    function showMessage(message, from = 'unknown')
  • Rest parameter (ES6)
    ...배열의 형태로 연달아 출력할 수 있다.
    function printAll(...args)

Local Scope

부모에서 정의 된 변수는 자식이 사용할 수 있지만, 자식에서 정의된 변수를 사용한 함수는 부모에서 출력할 수 없다.

밖에서는 안이 보이지 않고 안에서는 밖을 볼 수 있다.

Return

  • return undefined: return type이 없는 함수는 생략이 가능하다.

    early return, early exit
    if와 else를 많이 사용하는 것 보다는 조건이 맞을때만 필요한 로직을 실행하는 것이 더 좋다.

Function expression

  • annoymous function 이름이 없는 함수
  1. 함수를 선언함과 동시에 변수에 할당할 수 있다.
  2. 변수에 할당한 후에 함수를 호출할 수 있다.

Callback

원하는 조건에 맞는 함수를 호출하는 것

function randomQuiz(answer, printYes, printNo){
  if (answer === 'love you'){
    printYes();
  } else{
    printNo();
  }
}
const printYes = function(){
  console.log('yes!');
}

const printNo = function(){
  consoloe.log('no!');
}
randomQuize('wrong', printYes, printNo);
randomQuize('love you', printYes, printNo);

Arrow function

const simplePrint = function () {
  console.log('simplePrint!');
};

const simplePrint = () => console.log('simplePrint!');

const add = (a,b) => a+b;
const simpleMultiply = (a,b) =>{
// do something
return a*b; // block을 사용하는 경우 return을 사용해야 한다.
};

IIFE

함수를 선언하는 동시에 호출하는 방법. 함수 자체를 괄호로 묶어 호출한다. Function();

(function hello(){
  console.log('IIFE');
})();
profile
그때그때 공부한 내용과 생각을 기록하는 블로그입니다.

0개의 댓글