프로그래밍 = 데이터 처리를 하는 것
변수(Valuable) = a way to handle data
컴퓨터에는 데이터를 위한 보관함이 존재(메모리)
보관함의 크기는 동일
각 보관함의 이름이 변수
이름을 통해 데이터를 사용(재활용)
-> 변수는 값을 저장해둔 보관함이라고 할 수 있겠다.
How to Use
var, let, const의 차이점
1. var는 함수 레벨 스코프이고 let, const는 블럭 레벨 스코프입니다.
2. var로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만 let, const는 에러가 발생합니다.
3. var는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만 let, const는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 납니다.
4. var, let은 변수 선언시 초기 값을 주지 않아도 되지만 const는 반드시 초기값을 할당해야 합니다.
5. var, let은 값을 다시 할당할 수 있지만 const는 한번 할당한 값은 변경할 수 없습니다(단, 객체 안에 프로퍼티가 변경되는 것까지 막지는 못합니다).
<Hoisting: 어디에 선언했냐 상관없이 선언을 제일 위로 끌어올려 주는 것>
자바스클립트는 코드를 실행하기 전, 일종의 '코드 평가 과정'을 거치는데,
이 때 '변수 선언문'을 미리 실행해두기 때문에 뒤에서 선언된 변수도 앞의 코드에서 참조할 수 있게 된다.
이를 변수 호이스팅이라고 한다.
<Evaluation of expressions(표현식 평가)> : 표현식으로부터 값을 뽑아내는 과정
ex) consloe.log(2+3)->console.log(5)
'=' -> '같다'가 아님, 대입함을 나타내는(assign) 할당연산자(assignment operator)
할당이 없다면? 정의되지 않았다! undefined 라는 값 가짐
let pi = 3.141592;
let radius = 5;
표현식에서 변수 사용 가능
pi * 5 * 5;
pi * radius * radius; // 반지름이 5인 원의 넓이
결과물을 다시 변수로 담을 수 있다.
let areaOfCircle = pi * radius *radius;
Camel Case : (낙타 등 모양처럼 생겨) 변수명엔 공백을 쓸 수 없으므로, 보통 단어의 첫 글자를 대문자로 써 붙인다.