[모던 자바스크립트] 4장 프로그래밍
* 본 블로그 글은 모던 자바스크립트를 읽으며 진행했음을 밝힙니다.
* 개인적인 공부 기록용이, 상업적으로 사용하지 않으며 문제가 있을 시 즉시 글을 내리도록 하겠습니다.
4장 변수
1. 변수란?
쉽게 말해 값의 이름이다.
🍖 하나의 값을 저장하기 위해 확보한 메모리 공간 자체.
🍖 그 메모리 공간을 식별하기 위해 붙인 이름.
2. 왜 필요한가?
개발자가 직접 메모리 주소를 통해 값을 저장하거나 사용하지 않고,
안전하게 변수를 통해 접근 할 수 있기 때문에 필요하다.
3. 식별자
어떤 값을 구별해서 식별할 수 있는 고유한 이름
🍖 변수 이름이라고도 한다.
4. 선언
변수를 사용하려면 선언을 꼭 해야한다.
이때, var / let / const 를 사용한다.
🍗 var : 그냥 쓰지말자. 여러가지 단점이 존재하는 오리지널 변수 선언 방법이다. (추후에 설명이 나온다.)
🍗 let / const : ES6 부터 도입된 선언 방법이다. 권장 또 권장한다.
🍗 그렇다고 var가 쓰이지 않는 것은 아니다.
🍗 아직도 쓰이는 사실이 마음 아프다.
var score;
🍗 자바스크립트 엔진을 2단계에 걸쳐 변수 선언을 수행한다.
🍙 선언단계: 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알린다.
🍙🍙 초기화 단계: 값을 저장하기 위한 메모리 공간을 확보하고, 암묵적으로 undefined를 할당해 초기화한다.
5. 호이스팅
앞서 설명했듯이 자바스크립트는 선언 후 초기화를 거친다.
그 이후에 값을 할당하게 되는데, 이때 호이스팅이라는 개념이 등장한다.
console.log(score);
var score;
🥩 이 코드를 실행시키면 뭐가 나올까?
🥩 놀랍게도 console.log에는 undefined가 찍힌다.
🥩 이처럼 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 말한다.
6. 값의 할당
// 변수 선언
var score;
// 값의 할당
score = 80;
// 변수 선언과 값의 할당
var score = 80;
🍠 주의할 점이 있다.
🍠 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 실행된다.
🍠 하지만 값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행된다.
7. 값의 재할당
// 변수 선언 및 값의 할당
var score = 80;
// 재할당
score = 90;
🥟 보통 var와 let은 이렇게 재할당한다.
🥟 재할당 할 수 없는 것은 변수가 아니라 상수라고 한다. 보통 const로 선언한다.
8. 네이밍 규칙
별거 없다. 잘 알아볼 수 있게 만들면 된다.
🥠 특수문자를 제외한 문자, 숫자, _, $ 를 포함할 수 있다.
🥠 다만 숫자로 시작하면 안된다.
🥠 예약어는 사용할 수 없다.
🥠 예약어란, 프로그래밍 언어에서 사용되고 있는 단어를 말한다.
🥠 이외에도 maxScore 같은 카멜케이스, max_score 같은 스네이크 케이스가 있다.
