모던 자바스크립트 1~14장

Singsoong·2023년 6월 1일
0

독서

목록 보기
1/2
post-thumbnail

책을 읽고 개인적으로 remind 할 내용을 정리한 글입니다.

  • node 실행 시 .js 확장자는 입력 안해도 된다 (node server.js → node server)
  • var 키워드는 함수 레벨 스코프, 따라서 의도치 않게 전역 변수가 선언된다
  • 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라고 한다
    • 변수 선언은 런타임 이전에 먼저 실행되고 값의 할당은 런타임에 실행된다
  • 데이터 타입이 필요한 이유
    • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
    • 값을 참조할 때 한 번에 읽어 들어야 할 메모리 공간의 크기를 결정하기 위해
    • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
  • 레이블 문 : 중첩된 for 문 외부로 탈출할 때 유용하지만, 그 밖의 경우 권장하지 않음
  • 단축 평가 : 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환, 평가하는 도중 평과 결과가 확정된 경우 나머지 평가 과정 생략
    • 논리곱 연산자(&&) : 논리 연산의 결과를 결정하는 두 번째 피연산자를 반환
    • 논리합 연산자(||) : 논리 연산의 결과를 결정한 첫 번째 피연산자 반환
    • done이 true라면 message에 완료를 할당
      • massage = done && “완료”
    • done이 false라면 message에 미완료를 할당
      • message = done || “미완료”
  • null 병합 연산자 : 연산자 ??는 좌항의 피연산자 null 또는 undefined인 경우 우항의 피연산자를 반환, 아니면 좌항 반환
    • let foo = null ?? “default string”
  • 함수 호이스팅 : 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징
    • 함수 호이스팅은 함수를 호출하기 전에 반드시 함수를 선언해야 한다는 당연한 규칙을 무시하므로 함수 선언문 대신 함수 표현식을 사용할 것을 권장
  • 함수의 반환문을 생략하면 암묵적으로 undefined를 반환
  • 전역 변수의 사용을 억제하는 방법
    • 즉시 실행 함수 : 함수 정의와 동시에 호출되는 즉시 실행 함수로 단 한번 호출한다.

      (function () {
      	let foo = 10;
      }());
      
      console.log(foo); // foo is not defined
    • 네임스페이스 객체 : 전역 변수처럼 사용하고 싶은 변수를 프로퍼티로 추가하는 방법, 객체에 또 다른 네임스페이스 객체를 추가해서 계층적으로 구성할 수도 있음.

      let MYAPP = {};
      MYAPP.name = "Ryu";
      console.log(MYAPP.name);
    • 모듈 패턴 : 클래스를 모방해서 변수와 함수를 모아 즉시 실행 함수로 감싸 하나의 모듈로 만드는 방식, 전역 변수의 억제는 물론 캡슐화까지 구현 가능, 접근제한자는 사용 못함

      let Counter = (function () {
      	let num = 0;
      	
      	return {
      		increase(){
      			return num++;
      		},
      }());
profile
Frontend Developer

0개의 댓글