TIL #16 변수(var, let , const )

JohnKim·2021년 3월 15일
1

javascript

목록 보기
1/26
post-thumbnail

변수 선언하기

어떤 정보에 이름을 정하고 싶을 때 사용한다.

name = "MIKE" ;

age = 30;

 문자열은 ' ' 또는 " " 로 감싸 주어야한다

*변수명 지정할 때 유의할 점

자바스크립트에서 이미 사용하는 Reserved Words 를 변수로 사용할 수 없음 (ex class)

문자와 숫자는 $와 _ 만 사용가능 

let_ = 99; ,  let $ = 99;

첫글자는 숫자가 될 수 없다.

let  1ST =99;

예약어는 사용할 수 없다.

let let=99;

가급적 대문자 사용

const MAX_SIZE =99;

변수명은  읽기 쉽고 이해할 수 있게 선언한다. 

let a = 1; ///X  let userNumber= 3 ; ///O

var

console.log(name); //undefined
var name="Mike)

var name= "Mike";
console.log(name); //Mike 
    
var name= "Jane";
console.log(name); //Jane

var 한번 선언된 변수를 다시 선언할 수 있다.

  1. var는 hoisting이 되기 때문에 값을 지정하기전에 선언해도
    undefined를 출력한다.

  2. var는 지역변수 와 전역변수의 범위를 무시한다.

    되도록 var 대신 let 을 사용하여 코드를 예측 가능하게 하고 잠재적인 버그를 줄이도록 한다.

let

console.log(name); // ReferenceError
let name="Mike";

var name= "Mike";
console.log(name); //Mike 
    
var name= "Jane";
console.log(name); //error

let name= "Mike";
console.log(name); //Mike 
    
name= "Jane";
console.log(name); //Jane

let 은 한번 선언 후 다른 값으로 바꿀 수 있다.
하지만 값을 바꿀 때에는 let 을 제외한 변수명만 사용한다.
letconstvar 와 다르게 값이 할당 되기전까지는 사용할 수 없다.

const

const 는 절때로 바뀌지 않는 상수를 사용할때 선언한다.
immutable date에 속한다.
const의 장점

1.const 변수를 설정하면 여러 개발자들이 참여하는 프로젝트에서
중복으로 변수가 지정 되었을 경우 전에 지정한 변수가 덮어지는 것을 방지

2.값이 한번 지정되면 변경할 수 없기 때문에 보안이 좋다.

*요약
자바스크립트에서 변수를 선언할때
변하지 않는값은 cosnt
변할 수 있는 값은 let으로 사용한다.


변수의 선언단계

1.선언 단계
2.초기화 단계
3.할당 단계

var

1.선언 및 초기화 단계
2.할당 단계

var는 선언과 초기화를 같이 하기 때문에 할당 전 선언해도 undefined 가 나온다.

let

1.선언 단계
2.초기화 단계
3.할당 단계

let 은 실제 코드에 도달했을 때 초기화 단계로 넘어가기 때문에 할당전 선언하면 error가 발생한다.

const

1.선언 + 초기화 + 할당

const선언할당이 동시에 되어야 하기 때문에
선언하면서 바로 할당을 하지 않았기 때문에 error가 발생한다.

var : 함수 스코프

함수 내부에서 선언 한 변수 만 함수 내에 지역변수가 된다.

예를 들어서 if 문안에서 사용된 varif 문 바깥에서도 사용이 가능하다.

하지만 letconst는 이렇게 사용할 수 없다.

var도 유일하게 함수내에서 선언되면 함수 바깥에서 사용할 수 없다.

let, const : 블록 스코프 ( 함수, if문, for문 , while 문, try/catch 문 등)

블록 스코프는 코드 블록 내에서 만 유효하며 외부에서는 접근 할 수 없다.
즉 코드 블록 내부에서 선언 한 함수는 지역변수이다.

0개의 댓글