[JavaScript] 20221028 변수

wrld_worthy·2022년 10월 31일

JavaScript

목록 보기
2/21

var

var 변수명 = 초기화 값.
or 
var 변수명

특징

  • 코드 실행시 var는 최우선 실행이 된다.
  • 재선언이 가능하다
  • 재할당이 가능하다.

문제점

(1) 자바스크립트는 코드를 실행하기 전에 전체적으로 코드를 검사한다.
그 후 인터프리터 형식으로 코드를 실행한다.
이때 var는 우선순위를 최상단으로 올라갔기 때문에
EX>

console.log(test)
var test ( 최우선순위로 올라감 )
test=1
//=> 결과 undefine

같은 상황에서 test변수는 주소값을 가지게 되고 변수 주소에는 값이 없는 상태이기 때문에 오류가 아닌 undefine이 되어 오류가 검출되지 않고 진행된다.

(2) var 변수는 재선언이 가능하다. 코드가 길어질수록 변수가 헷갈리고 중복이 될 상황이 많이질 수 있고 무분별한 변수 선언을 하여 코드가 복잡해질 수 있다.

(3) (1), (2)의 특징에 겹쳐서 실수로 이미 있는 변수명으로 재선언하고 사용하여, 오류, 오차가 발생하면 검수하기 힘들고 질이 떨어지는 코드가 될 수 있다.

let, const

var로 밖에 변수를 선언할 수 없던 자바스크립트 ES5 이후 ES6로 넘어가면서
보완한 변수 선언 예약어이다. 이후 var는 몇몇의 경우를 제외하고 사용하지 않음.

let

let test_let = 0
let test_let = 2
//=> Uncaught SyntaxError: Identifier 'test_let' has already been declared 

특징

  • 재선언이 불가능하다. 위의 오류의 원인이다.
  • 재할당이 가능하다.
    = 일반적인 다른 언어 변수와 같음.

const

특징

const test_const = 0
const test_const = 1
// = > Uncaught SyntaxError: Identifier 'test_const' has already been declared
  • 재선언이 불가능하다.
const test_const = 100
test_const = 10
//=>index3.js:81 Uncaught TypeError: Assignment to constant variable.
  • 재할당이 불가능하다. 하지만 코드상으로는 문제가 없는지 일단 실행은 된다. 전부 실행이 되다가
    재할당 부분에서 오류가 발생하며 멈춘다.

=> 위 같은 상수의 특징과 같아 상수형 변수이다.
선언 이후 값을 변경할 수 없고 선언과 동시에 값을 초기화 시켜줘야한다.

선언 방법

[var, let, const] 변수명 = 데이터

0개의 댓글