JavaScript ES6 Basics

  • ‘${shape.toString()} : ${config.shapeErrorMsg}’

    • template literals : 내장된 표현식을 허용하는 문자열 리터럴로, 문자열과 문자 보간 기능을 사용할 수 있다. 실제로는 따옴표 대신에 backtick이 쓰인다.
  • 여러 개의 전역변수를 선언할 때 하나의 객체 내에 선언해 주면 충돌을 어느정도 방지할 수 있다.

  • == 와 ===의 차이

    • == : 자료형이 달라도 값이 같다면 true
    • === : 자료형이 같으면서 값이 같아야 true
  • some()

    • array.some( ~~ ) 배열 내의 값 중 하나 이상 ~~의 조건을 만족한다면 true를 반환
  • join()

    • 배열 안의 요소들을 string으로 바꿔주며 인자를 전달할 시에는 배열을 출력할 때 사이에 인자를 함께 출력해준다
  • 예외처리를 할 때, if문으로 예외를 throw하는 방법도 있지만 프로그램에서 기본적으로 throw하는 예외를 catch했을 때 처리하는 방법도 있다.

  • 어떤 변수를 로컬변수로 사용할 때, var 보다는 let과 const로 선언하는 쪽이 좋다.

  • var와 let의 스코프 차이

    • var는 블록단위의 지역스코프를 보장해 주지 않지만 let은 보장해 준다.
  • 코드 내에서 동작하는 데에 영향은 없더라도 형식을 통일해 주는 것이 좋다.

    • ex ) “ㅇ” 와 ‘ㅇ’ 를 같이 사용하는 것은 좋지 않다.
  • 함수표현방법

    • 일반적 함수 표현

      1
      2
      3
      function test() { 
      console.log('ㅇ');
      }
    • 변수를 이용한 함수 표현

      1
      2
      3
      const printName = function() {
      return 'ㅇ';
      }
      • arrow function
      1
      const getName = (name) => "Kim " + name;
  • 순수함수

    • 동일한 인자를 주었을 때 항상 같은 값을 반환하는 함수
    • 함수가 자체적으로 외부 상태를 변경하지 않는다 ( 부수 효과가 없다 )
    • 장점
      • 재사용성이 높다
      • 입력과 결과가 분리되어 있어서 어떻게 사용되는지 신경 쓸 필요가 없다.
  • ES2015에서의 유용한 문법

    • 구조 분해 할당
    1
    2
    let arr = [1, 2];
    const [a, b] = arr;

위와 같은 구조로 저장된 값들을 다른 변수에 할당할 때 불필요한 코드를 줄이면서 간결하게 작성할 수 있다.
[arr[0], arr[1]] = [arr[1], arr[0]] 와 같이 swap도 가능

  • arrow function
  • template literals