딥 다이브 day 2 (7 ~ 9)

kdev·2022년 6월 29일
0
post-thumbnail

7장 (연산자)

  • 산술 연산자
    • 산술 연산이 불가능한 경우 NaN을 반환한다.
    • 부수효과 = 피연산자의 값을 변경하는 것
      • 증가 / 감소 (++ / —) 연산자는 피연산자의 값을 변경하는 부수효과가 있다.
      • 전위 증가/감소 연산자
        • 피연산자 앞에 위치 ex) ++x
      • 후위 증가/감소 연산자
        • 피연산자 뒤에 위치 ex) x++
      • 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다
        • null + 1 = 1 ⇒ null은 0으로 변환
        • undefined + 1 = NaN ⇒ undefined는 숫자 타입으로 변환 안됨
    • 암묵적 타입 변환 ( = 타입 강제 변환)
      • 연산 과정에서 자바스크립트 엔진이 타입을 변환 시킨 것
  • 비교 연산자
    • == (동등 비교)와 === (일치 비교)
      • ==
        • 암묵적으로 타입을 일시시킨 뒤 값을 비교
      • ===
        • 값의 타입까지 비교
      • *** Tip
        • 동등 비교 연산자는 예측하기 어려운 결과를 만들어 내기도 하므로 사용하지 않는 것이 좋다
  • typeof 연산자
    • typeof가 반환하는 것은 7가지 문자열이다
      • string, number, boolean, undefined, symbol, object, function
      • null을 반환하는 경우는 없다 ⇒ null = object
        • 따라서 null 값을 확인할 떄는 일치 연산자( === )를 사용한다
    • 선언하지 않은 식별자를 typeof 로 연산하면 undefined를 반환한다.
  • 지수 연산자
    • ex) 2 2 = 4, 3 2 = 9
    • 음수일 경우 괄호로 묶어야 한다
      • ex) (-2) ** 2 = -4
  • 연산자 우선순위
    • 모든 우선순위를 기억하기보다 연산자 중 우선순위가 가장 높은 그룹 연산자를 사용하여 우선순위를 명시하는 것을 권장한다.

8장 (제어문)

  • 블록문
    • 0개 이상의 문을 중괄호로 묶은 것
    • 코드 블록 or 블록이라고 부르기도 한다
    • 자바스크립트는 블록문을 하나의 실행단위로 취급한다.
    • 블록문은 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않는다.
  • if / switch
    • if
      • 논리적 참, 거짓으로 실행할 코드 블록
    • switch
      • 상황에 따라 실행할 코드 블록
  • for
    • for문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 생략가능하다.
      • ex) for(;;) ⇒ 무한 루프
    • 반복 횟수가 명확할 때 사용
  • while
    • 반복 횟수가 명확하지 않을 때, 조건식을 통하여 반복문의 끝을 정한다
  • do ~ while
    • 조건이 맞지 않더라도 한 번 이상 실행된다.
  • continue
    • 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.

9장 (타입 변환과 단축평가)

  • 타입 변환
    • 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 or 타입 캐스팅이라고 한다.
    • 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 타입이 자동으로 변경되는 것을 암묵적 타입변환 or 타입 강제 변환 이라고 한다.
    • 명시적 타입 변환이나 암묵적 타입 변환이 일어난다고 해서 기존의 원시 값의 타입이 변경되지는 않는다.
  • 암묵적 타입 변환
    • boolean 타입
      • 자바스크립트 엔진은 불리언 타입이 아닌 값을 Truthy 또는 Falsy값으로 구분한다.
  • 단축 평가
    • 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는 것
    • 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다
      • ex)
        ‘cat’ || false ⇒ ‘cat’ 값이 Truthy 이므로 ‘cat’ 값을 반환
        ’cat’ && ‘dog’ ⇒ ‘dog’ 값을 판단할 때 결과가 결정되므로 ‘dog’값 반환
  • 옵셔널 체이닝 연산자
    • elem?.vale ⇒ elem && elem.value
  • null 병합 연산자 ( ?? )
    • 피연산자의 값이 null 또는 undefined 값인지 판단
    • ex)
      const temp = ‘’ || ‘dog’ ⇒ 이 경우 ‘’ 값을 Falsy 하다고 판단하여 ‘dog’ 가 할당된다.
      const temp = ‘’ ?? ‘dog’ ⇒ 이 경우 ‘’ 값을 Truthy 하다고 판단하여 ‘’가 할당된다.

0개의 댓글