변수 선언하기
어떤 정보에 이름을 정하고 싶을 때 사용한다.
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
한번 선언된 변수를 다시 선언할 수 있다.
var
는 hoisting이 되기 때문에 값을 지정하기전에 선언해도
undefined를 출력한다.
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
을 제외한 변수명만 사용한다.
let
과const
는 var
와 다르게 값이 할당 되기전까지는 사용할 수 없다.
const
const
는 절때로 바뀌지 않는 상수를 사용할때 선언한다.
immutable date에 속한다.
const의 장점
1.const
변수를 설정하면 여러 개발자들이 참여하는 프로젝트에서
중복으로 변수가 지정 되었을 경우 전에 지정한 변수가 덮어지는 것을 방지
2.값이 한번 지정되면 변경할 수 없기 때문에 보안이 좋다.
*요약
자바스크립트에서 변수를 선언할때
변하지 않는값은 cosnt
변할 수 있는 값은 let으로 사용한다.
변수의 선언단계
1.선언 단계
2.초기화 단계
3.할당 단계
1.선언 및 초기화 단계
2.할당 단계
var
는 선언과 초기화를 같이 하기 때문에 할당 전 선언해도 undefined
가 나온다.
1.선언 단계
2.초기화 단계
3.할당 단계
let
은 실제 코드에 도달했을 때 초기화 단계로 넘어가기 때문에 할당전 선언하면 error
가 발생한다.
1.선언 + 초기화 + 할당
const
는 선언과 할당이 동시에 되어야 하기 때문에
선언하면서 바로 할당을 하지 않았기 때문에 error
가 발생한다.
var : 함수 스코프
함수 내부에서 선언 한 변수 만 함수 내에 지역변수가 된다.
예를 들어서 if
문안에서 사용된 var
는 if
문 바깥에서도 사용이 가능하다.
하지만 let
과 const
는 이렇게 사용할 수 없다.
var
도 유일하게 함수내에서 선언되면 함수 바깥에서 사용할 수 없다.
let, const : 블록 스코프 ( 함수, if문, for문 , while 문, try/catch 문 등)
블록 스코프는 코드 블록 내에서 만 유효하며 외부에서는 접근 할 수 없다.
즉 코드 블록 내부에서 선언 한 함수는 지역변수이다.