모던 자바스크립트 메모 (4장~6장)

front_pica·2022년 6월 12일
0
post-thumbnail

4장 변수

변수란 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.

  1. 변수에 값을 저장 [할당] <----> 변수의 저장된 값을 읽는것 [참조]

  2. 변수이름을 식별자라고도 하는데 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말한다.
    (식별자는 값이 아니라 메모리 주소를 기억한다.)

  3. undefined는 자바스크립트에서 제공하는 원시타입의 값이다. 변수에 아무값도 지정해주지 않고 선언하였을때 메모리에 이렇게 할당되어 초기화 된다.

  4. 자바스크립트 엔진은 변수선언을 2단계에 거쳐서 수행한다.

    • 1.선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
    • 2.초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화 한다.
  5. 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라 한다. 그리고 var, let, const, function, function*, class 키워드를 사용해서 선언하는 모든 식별자(변수, 함수, 클래스 등)는 호이스팅 된다. 즉 모든 선언문은 런타임 이전 단계에서 먼저 실행되기 때문이다.

  6. 변수에 값을 할당할 때는 이전값 undefined가 저장되어 있던 메모리 공간을 지우고 그 메모리 공간에 할당 값 80을 새롭게 저장하는것이 아닌 새로운 메모리 공간을 확보하고 그곳에 값을 저장한다.

  7. 위의 과정을 통해 안쓰는 메모리 공간(어떤 식별자도 참조하지 않는 메모리 공간)은 가비지 콜렉터에 의해 메모리에서 자동 해제 된다.

  8. 네이밍 컨벤션

    • 카멜 케이스
      ex) firstName, myText
    • 스네이크 케이스
      ex) first_name, my_text
    • 파스칼 케이스
      ex) FirstName, MyText

5장 표현식과 문

  1. 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다.
    ex) 정수 리터럴 3, 불리언 리터럴 true
  2. 표현식은 값으로 평가될 수 있는 상태이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다.
    ex) var scope = 50 + 50; (50+50이 100으로 표현되므로 표현식이다.)
  3. 자바스크립트는 세미콜론 자동 삽입기능(ASI)이 암묵적으로 수행된다.

6장 데이터 타입

  1. 자바스크립트의 숫자 타입은 모든 수를 실수로 처리한다.
    ex) console.log(1 === 1.0) 이는 정수로 표시된다고 해도 사실은 실수라는 것을 의미
  2. es6부터 사용할 수 있는 템플릿 리터럴은 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리 기능을 제공한다. 사용하는 방법은 ` 백틱을 이용한다.
  3. 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론)된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다. --> 동적 타입 언어
profile
한걸음씩

0개의 댓글