[22.11.11]today I learned

AnSuebin·2022년 11월 11일
0

11월 11일 혼자 공부하는 자바스크립트 책의 5장을 '함수'파트를 정독하였습니다.
그중 가장 기억하면 유용할 것을 기록합니다.

01. 핵심 포인트

  • 나머지 매개변수: 매개변수 앞에 마침표 3개를 입력하면 매개변수들이 배열로 들어옴
    function 함수이름(... 나머지 매개변수){}

  • 자료형에 따라 다르게 작용하는 min() 함수

function min(first, ...rests) {
  let output;
  let items;

  if (Array.isArray(first)) {
    output = first[0];
    items = first;
  } else if (typeof first === 'number') {
    output = first;
    items = rests;
  }
  for (const item of items) {
    if (output > item) {
      output = item;
    }
  }
  return output;
}

console.log(`${min([52, 273, 32, 103, 275, 24, 57])}`);
console.log(`${min(52, 273, 32, 103, 275, 24, 57)}`);
  • 나머지 매개변수 : 함수를 만들때 사용

  • 전개 연산자 : 함수를 호출할 때 사용

  • 구버전 자바스크립트 매개변수 함수 구현하기

    • arguments / apply 등 한번쯤 알아두면 좋음!!
    • 그와 함께 this와 프로토타입, 클래스도 공부해보기
  • 콜백함수

    • filter함수에서 만난 특이점 : console.log를 넣으면 value index array 순으로 출력된다
let numbers = [273,52, 103, 32, 57]
numbers = numbers.map(function(value,index,array){
	return value * value
})

numbers.forEach(console.log)
  • 타이머 함수
let id
let count = 0
id = setInterval(()=>{
  console.log(`1초마다 실행됩니다.(${count}번째)`)
  count ++
}, 1* 1000)

setTimeout(()=>{
  console.log('타이머를 종료합니다.')
  clearInterval(id)
}, 5*1000)
  • 즉시 호출 함수
    • 스코프를 만들어주기 위해서
    • 스코프 단계를 변경하는 방법 : 블록 생성, 함수 생성
{
블록을 만든다!
}
  • 즉시 실행 함수 활용하기
    • 단 한번의 사용이 필요한 함수
    • 자바스크립트 모듈
const Counter = (function counterIIFE() {
    // 현재 counter 값을 저장하기 위한 변수
    let current = 0;

    return {
        getCurrentValue: function () {
            return current;
        },

        increaseValue: function () {
            current = current + 1;
            return current;
        },

        decreaseValue: function () {
            current = current - 1;
            return current;
        },
    };
})();

console.log(Counter.getCurrentValue()); // 0
console.log(Counter.increaseValue()); // 1
console.log(Counter.decreaseValue()); // 0
  • 엄격 모드 : 즉시호출 함수를 만들고,그 위에 적용하는 경우가 많음
(function(){
	'use strict'
    문장
    문장
})()
  • 익명함수와 선언적 함수의 차이
    • 선언적 함수 : 순차적인 코드 실행이 일어나기 전에 생성, 선언적 함수는 같은 블록이라면 어디에서 함수를 호출해도 상관 없음.
    • 선언적 함수 : 가장 위험한 것은 덮어씌기도 가능하다는 것
profile
고객에게 명료한 의미를 전달하고, 명료한 코드를 통해 생산성 향상에 기여하고자 노력합니다.

0개의 댓글