SDK JS 모던 딥 다이브 스터디 2주차

민겸·2023년 3월 20일
0

SDK 스터디

목록 보기
2/6

2주차에는 5장(데이터 타입)과 6장(연산자)에 대해 공부한 내용을 바탕으로 스터디를 진행했다.

5장에서 기억하고 있으면 좋은 것들

  1. 변수에 값이 없다는 것을 명시하고 싶다면 null을 할당하자.

    null을 할당한다는 것은 해당 변수에 기존의 값과의 참조를 끊어버리겠다는 의미이다. 참조가 끊긴 변수는 곧 가비지 컬렉팅의 대상이 되어 메모리 누수 방지에 도움이 될 것 같다.

  2. undefined는 자바스크립트 엔진이 변수값을 초기화할 때 사용하는 값으로, 의도적으로 사용하는 것은 취지에 맞지 않다. 사용을 자제하자.

  3. 문자열 타입은 문자 하나 당 16비트 즉, 2바이트의 메모리 공간을 차지하고, 숫자 타입은 값의 크기에 상관없이 8바이트의 메모리 공간을 차지한다.

  4. 전역 변수의 사용을 자제하자.

6장에서 기억하고 있으면 좋은 것들

  1. 증가/감소 연산자는 위치에 따라 연산 수행과 할당의 순서가 바뀌기도 한다.

    let x = 5, result;
    // 선 할당 후 증가
    result = x++;
    console.log(result, x); // 5, 6
    // 선 증가 후 할당
    result = ++x;
    console.log(result. x); // 7, 7
    // 감소 또한 동일하게 작동한다.
  2. 동등 비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.

  3. NaN은 자신과 일치하지 않는 유일한 값이다.

    NaN === NaN; // false
  4. 숫자 0, =0, +0 은 서로 일치/동등 비교에서 true를 반환한다.

    ES6에 도입된 Object.is 메서드를 사용하면 예측 가능한 정확한 비교 결과를 반환해준다.

    0 === -0; // true
    0 == -0; // true
    -0 === +0; // true
    
    Object.is(-0, +0); // false
  5. 선언하지 않은 식별자를 typeof 연산자로 연산하면 ReferenceError 대신 undefined를 반환한다.

2주차 스터디 회고

이번 주차는 number 타입의 배정밀도 64비트 부동소수점 표현 방식을 조금 더 자세히 알 수 있었다. 추가로, 템플릿 리터럴의 tagged template에 대한 설명이 자세히 나와있지 않아서 따로 찾아보면서 템플릿 리터럴을 함수로 파싱할 수 있다는 점도 알게 되었다.

tagged template을 찾아보고 공부하면서 발표 주제로 채택하고 스터디원들에게 설명해주며 이러이러한 것도 있다~ 라고 드디어! 처음으로! 발표다운 발표는 아니지만 발표를 해보았다.
공부하면서 이걸 도대체 어디다 쓸까... 싶어서 찾아보다가 ChatGPT에서 가장 그럴 듯한 답변을 얻었다.

ChatGPT의 답변 🤖

일반적으로, 웹 애플리케이션은 사용자로부터 입력된 데이터를 받아서 이를 처리하고, 그 결과를 표시하기 위해 동적인 HTML 코드를 생성해야 합니다. 이 때, 개발자들은 JavaScript 코드로 이러한 동적 HTML 생성과 데이터 처리 작업을 구현하게 됩니다.

하지만 이러한 방식은 코드의 복잡도가 높아지고 유지보수가 어려워질 수 있습니다. 또한, 프론트엔드와 백엔드를 완전히 분리하기 어려워져서 개발의 효율성이 떨어질 수 있습니다.

태그드 템플릿은 이러한 문제를 해결하기 위해 도입된 개념으로, HTML 코드와 JavaScript 코드를 결합하여 하나의 템플릿으로 사용할 수 있습니다. 이를 통해 개발자들은 더 쉽게 동적인 HTML 코드를 생성하고, 데이터 처리를 효율적으로 할 수 있습니다.

라고 하는데.. 과연 내가 이걸 목적에 맞게 쓸 일이 있을지 의문이다.

profile
기술부채상환중...

2개의 댓글

comment-user-thumbnail
2023년 3월 22일

당신의 지식 칭찬해~~!!~

1개의 답글