[JS] 변수 사용방법

hahaha·2021년 8월 1일
0

JavaScript

목록 보기
1/24
post-thumbnail

변수

  • 메모리 공간을 식별하기 위해 붙인 이름
  • 식별자
  • 값이 아닌 메모리 주소를 가리킴

메모리

: 데이터를 저장할 수 있는 메모리 셀의 집합체

  • 메모리 주소: 메모리 공간의 위치
  • 메모리 저장값: 모두 2진수
  • 메모리 주소는 상황에 따라 변함
    -> 메모리 주소를 통해 값에 직접 접근하는 것은 좋지 않음 ..
    => 변수 이용

1. let

  • 블록 레벨 스코프

2. const

  • 상수, 재할당이 불가능
  • 블록 레벨 스코프
  • 재할당이 불가능할 뿐, 불변값은 아님!
const a = 3;
a = 4;	// TypeError: Assignment to constant variable.

const obj = {};
obj.a = 42;	// ok

3. var

  • 과거 변수 선언 방식
  • 함수 레벨 스코프
  • 암묵적 초기화 수행
    - 자동으로 undefined 할당

" const를 기본으로 사용하고, 재할당이 반드시 필요한 변수만 let을 이용해 선언해라."

  • 변수 값이 블록 내에서 유지될 것이라 짐작하여 실수를 찾아내는 일을 돕는다.
  • var 변수 사용 굳이 하지 않는게 좋다.

변수 호이스팅

  • 변수 선언문이 코드 선두로 끌어 올려진 것 처럼 동작

1. 변수 선언

  • 런타임 이전에 모든 선언문(변수, 함수, 클래스 등) 실행
    - 런타임: 소스코드가 한 줄씩 순차 실행되는 시점

2. 값의 할당

  • 런타임에 실행
  • 기존 메모리 공간이 아닌 새로운 메모리 공간을 확보하여 할당 값 저장

식별자 네이밍 규칙

  • 허용된 특수기호: $, _
  • 네이밍 컨벤션: 가독성 좋게 단어를 구분하기 위해 규정한 명명 규칙
    - camelCase -> 변수, 함수
    - snake_case
    - PascalCase -> 생성자 함수, 클래스
    - hungaruan

그외

실행 컨텍스트

  • 소스코드를 평가하고 실행하기 위한 환경 제공
  • 실행결과를 실제로 관리하는 영역
  • 변수 이름이 등록되는 곳

가비지 콜렉터

  • managed language에 내장 (<> unmanaged language)
  • 애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 사용되지 않는 메모리 해제
  • 메모리 누수 방지
profile
junior backend-developer 👶💻

0개의 댓글