Unit10 - [JavaScript] 과제JavaScript Koans

예진·2022년 9월 8일
0

🔥 유닛 테스트(unit test)

expect
: 테스트하는 값과 기대값을 비교하기 위해 사용
expect(테스트하는값).기대하는조건
=> ex. expect(1 + 2).to.eqal(3)


02_Types1

느슨한 동치 연산(loose equality) == 보다
엄격한 동치 연산(strict equality) === 사용하기


03_LetConst

const

const로 선언한 경우

  • 변수에 재할당(reassignment) 금지
  • 배열의 경우 새로운 요소 추가, 삭제 가능
  • 객체의 경우 속성 추가, 삭제 가능

let

let로 선언한 경우

  • 변수에 재할당(reassignment) 가능

참고) Google JavaScript Style Guide (const let 사용)


04_Scope

scope

: 변수의 값(변수의 담긴 값)을 찾을 때 확인하는 곳

호이스팅(hoisting)

: 코드를 실행하기 전에 인터프리터가 함수, 변수, 클래스의 선언을 해당 범위의 맨 위로 이동하는 것처럼 보이는 프로세스

  • 호이스팅을 사용하면 함수가 선언되기 전에 코드에서 안전하게 사용 가능

클로저(Closure)

: 함수와 함수가 선언된 어휘적(lexical) 환경의 조합

  • 내부 함수가 외부 함수의 지역 변수에 접근 가능

05_ArrowFunction

화살표 함수(Arrow function)

: function 키워드 대신 화살표(=>)를 사용해 보다 간략한 방법으로 함수 선언

  • return 생략 가능
  • 필요에 따라 소괄호 사용 가능
  • 파라미터가 하나일 경우 소괄호 생략 가능

06_Types2

원시 자료형(primitive data type, 원시값)

: 객체가 아니면서 method를 가지지 않는 6가지 데이터
string, number, bigint, boolean, undefined, symbol, (null)

  • 값 자체에 대한 변경 불가능(immutable)
    -> 새로운 값으로 재할당은 가능
  • 변수에 할당할 경우, 자체 복사

참조 자료형(reference data type, 참조값)

: 원시 자료형이 아닌 모든 것
배열([]), 객체({}), 함수(function(){})

  • 데이터는 동적(dynamic)으로 변한다.
  • 변수에 할당할 경우, 데이터의 주소 저장

07_Array

배열(array)

: 1개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다.

  • Array를 함수의 전달인자로 전달할 경우, reference가 전달
  • arr.slice : arr의 값을 복사하여 새로운 배열 반환

+ call by value & call by reference

: 변수나 객체 등이 함수의 인자(argument = 값)로 들어와 매개변수(parameter = 변수)로 전달될 때 어떤 방식으로 전달될지를 결정하는 방식

  • call by value : 값에 의한 호출, 값의 복사 ⇒ 원시 자료형

  • call by reference : 참조에 의한 호출, 주소의 복사 ⇒ 참조 자료형


08_Object

객체(object)

: 키(key)와 값(value)으로 구성된 프로퍼티(Property)들의 집합
원시 타입을 제외한 나머지 값들(함수, 배열, 정규표현식...)

  • Object를 함수의 전달인자로 전달할 경우, reference가 전달
  • this는 method를 호출하는 시점에 결정된다.
  • 객체는 length 프로퍼티를 가지고 있지 않으므로 length 프로퍼티 호출시, undefined 반환

+ 객체 길이 구하는 방법

  • JavaScript에서 제공하는 정적 메서드(keys, values, entries) 활용
  • for … in 문 사용

09_SpreadSyntax

전개 문법(spread syntax)

  • 빈 배열에 전개 문법을 사용할 경우, 아무것도 전달되지 않음
  • 여러 개의 배열을 이어붙일 수 있고, 여러 개의 객체를 병합할 수 있다.

나머지 파라미터(Rest Parameter)

: 함수의 전달인자를 배열로 다룰 수 있게 한다.
- arguments는 모든 함수의 실행 시 자동으로 생성되는 '객체'이다.

  • rest parameter는 전개 문법을 통해 간단하게 구현됨
  • 전달인자의 수가 정해져 있지 않은 경우에 유용하게 사용
    ( + 전달인자의 일부에만 적용 할 수도 있다 )

10_Destructuring

구조 분해 할당(Destructing Assignment)

: 배열을 분해한다.

  • rest/spread 문법을 배열, 객체 분해에 적용할 수 있다.
profile
😊

0개의 댓글