[JS] 변수(variable)와 상수(constant)

Chanki Hong·2022년 11월 6일
0

JavaScript

목록 보기
1/30
post-thumbnail

  • 선언(declaration): 특정 주소의 메모리 공간에 이름(식별자; identifier) 부여.
    • 식별자(identifier)는 글자, $, _ 로 시작.(숫자, 공백으로 시작 불가)
    • 하지만 밑줄로 시작하는 것은 아주 특별한 상황 또는 내부변수에서만 이용.
    • $ 는 보통 제이쿼리의 객체로 이용.
    • 식별자(identifier)는 유니코드 문자 가능.
    • 식별자(identifier)는 키워드(let, const)를 포함한 return, for 등 예약어 불가.
    • 식별자(identifier)는 클래스를 제외하고는 보통 소문자로 시작.
    • 보통 카멜 케이스(소문자 시작)를 이용.
  • 할당: 특정 값(value)을 메모리에 담는 것.
    • 할당 하지 않으면 undefined 값을 가짐.
  • 선언하는 방법: 변수(variable), 상수(constant)
    • 변수와 상수는 특정 주소를 가진 메모리 공간을 지칭.
    • 변수 값과 상수 값은 특정 주소를 가진 메모리 공간에 들어있는 값(value)을 지칭하는 것.
    • 데이터를 보관하는 메커니즘.
  • 정의(definition)는 선언하는 동시에 할당하는 것.
  • 선언(declaration)과 정의(definition)은 명확하게 다른데, 선언은 식별자를 이용해 그 존재를 알리는 것이고 정의는 선언과 함께 값을 부여하는 것.
  • 다만 JS에서는 선언하는 동시에 값이 주어짐으로 두 용어가 크게 구분되지 않음. (명시적으로 정하지 않으면 undefined가 암시적으로 주어지므로)
  • 리터럴(literal)
    • 값(value)을 지정하는 방법 또는 그 값을 이루고 있는 자체; 값을 이루는 최소 단위
    • 숫자 리터럴, 문자열 리터럴, 불리언 리터럴, 배열 리터럴, 객체 리터럴, 함수 리터럴, 정규 표현식 리터럴.
    • 자바스크립트는 제공된 리터럴(literal)을 받아 데이터(0과 1)로 만듬.
    • 직접 입력된(타이핑된) 데이터.
    • 변하지 않는 고정됨.
    • 데이터의 타입을 표현함.

변수(variable)

  • let 키워드(예약어) 사용.
  • 재할당 가능.
let value = 1; // value라는 이름의 변수 선언, 1(숫자형 리터럴)을 할당.
value = 2; // 변수에 값을 2(숫자형 리터럴)로 재할당.
  • 같은 블록범위에서 재선언 불가. (block scope)
let value = 1;
let value = 2; // SyntaxError: Identifier 'value' has already been declared
  • let 문 하나에서 변수 여러 개 선언 및 할당 가능
let schoolName1 = SNU, schoolName2 = KNU, schoolName3 = NYU;// 3개의 변수 선언 및 할당

상수(constant)

  • const 키워드(예약어) 사용.
  • 선언과 즉시 할당 해야함. (후 할당 불가)
  • 재할당 불가. (값이 변하지 않는 변수)
const a = 1; // a라는 이름의 상수 선언, 1(숫자형 리터럴)을 할당.
a = 2; // TypeError: Assignment to constant variable.
  • 같은 블록범위에서 재선언 불가. (block scope)
const a = 1;
const a = 2; // SyntaxError: Identifier 'a' has already been declared
  • const 문 하나에서 상수 여러 개 선언 및 할당 가능
const SCHOOL_NAME_1 = SNU, SCHOOL_NAME_2 = KNU, SCHOOL_NAME_3 = NYU;// 3개의 상수 선언 및 할당
  • 일반적으로 상수 식별자(identifier)에는 대문자와 밑줄 이용.
  • 꼭 필요한 경우가 아니라면 변수가 아닌 상수를 이용.

var

  • var 키워드(예약어) 사용.
  • 구 버전 변수선언 키워드.
  • 권장하지 않음.
  • 같은 블록범위에서 재선언 가능.
var a = 1; // a라는 이름의 변수선언, 1 할당.
var a = 2; // a라는 이름의 변수선언, 2 할당..
  • varlet 의 사용할 수 있는 범위가 다름.
  • 구형 브라우저에서는 letconst 를 지원하지 않는 경우가 있음.
  • babel 을 이용해서 해결.

0개의 댓글