- 변수는 데이터를 저장할 때 쓰이는 '이름이 붙은 저장소'
let 이라는 키워드를 사용해 변수를 선언한다.
let message; // 할당 연산자 = 을 사용해 변수 안에 데이터를 할당 message = 'hello'; // 문자열 "hello"가 변수와 연결된 메모리 영역에 할당되었기때문에 변수명을 이용해 접근할 수 있다. alert(message);
- 한 줄에 여러 변수를 선언하는 것도 가능하다
but, 가독성을 위해 한줄에는 하나의 변수를 선언하는 것이 좋다.// style 1. let user = 'john', age = 25, message = 'hello'; // style 2. let user = 'john', age = 25, message = 'hello'; // style 3. let user = 'john' , age = 25, , message = 'hello';
- 변수에는 어떤 값이든 할당할 수 있고, 원하는 만큼 값을 변경할 수 있다.
- 값이 변경되면, 이전 데이터는 변수에서 제거된다.
- 변수 두 개를 선언하고, 한 변수의 데이터를 다른 변수에 복사할 수 있다.
let Hello = 'Hello javascript'; let message; // Hello의 'Hello world' 값을 message에 복사. message = Hello;
- 변수를 두번 선언하면 에러가 발생한다
let message = 'This'; let message = 'That' ; //syntaxError: 'message' has already been declared
- 변수명에는 오직 문자와 숫자, 그리고 기호 "$"와 "_"만 들어갈 수 있다.
- 첫 글자는 숫자가 될 수 없다.
// 유효한 변수명 예시 let userName; let test1234; let $ = 1; let _ = 2;
3.카멜표기법(camelCase) : 단어를 차례대로 나열하면서 첫 단어를 제외한 각 단어의 첫 글자를 대문자로 작성한다.
4. 예약어(reserved name) 목록에 있는 단어는 변수명으로 사용할 수 없다.let let = 5; // error let return = 5; // error
- 변화하지 않는 변수를 선언할때,
let
대신const
를 사용한다.const myBirthDay = '92.12.05';
const
로 선언한 변수를 상수라고 부른다.- 상수는 재할당할 수 없으므로 상수를 변경하려 하면 에러가 발생한다.
const myBirthDay = '92.12.05'; myBirthDay = '00.12.05'; // error, can't reassign the constant!
- 기억하기 힘든 값을 변수에 할당해 별칭으로 사용한다.
- 이런 상수는
대문자
와밑줄
로 구성된 이름으로 명명한다.🤔 기억하기 쉽고, 가독성이 증가하며 오타를 낼 확률이 적다.
const COLOR_LED="#F00"; const COLOR_GREEN = "#0F0"; // 색상을 고르고 싶을 때, 별칭을 사용할 수 있다. let green = COLOR_GREEN; alert(green)
그렇다면 언제 일반적인 방식으로 상수를 명명하고, 언제 대문자를 사용해서 명명해야 할까?
⭐️상수
는 값이 절대 변하지 않음을 의미한다. 그중에는 코드가 실행되기 전에 이미 그 값을 알고 있는 상수도 있고, 런타임 과정에서 계산되지만 최초 할당 이후 값이 변하지 않는 상수도 있다.const pageLoadTime = /*웹페이지를 로드하는데 걸리는 시간 */
pageLoadTime
의 값은 페이지가 로드되기 전에는 정해지지 않기 때문에 일반적인 방식으로 변수명을 지었다.
하지만 이 값은 최초 할당 이후에 변경되지 않으므로 여전히 상수이다.
📢 다시 말하면,대문자 상수
는 하드코딩한 값의 별칭을 만들때 사용하면 된다!
- 변수명은
간결
하고,명확
해야 한다.
userName
이나shoppingCart
처럼 사람이 읽을 수 있는 이름을 사용하기.- 무엇을 하고 있는지 명확히 알고 있지 않을 경우 외에는 줄임말이나
a, b, c
와 같은 짧은 이름은 피하기.- 최대한 서술적이고 간결하게 명명.
data
와value
는 나쁜 이름의 예시이다. 이런 이름은 아무것도 설명해주지 않는다.
코드문맥상 변수가 가리키는 데이터나 값이 아주 명확할 때에만 이런 이름을 사용하도록 한다.- 자신만의 규칙이나 소속된 팀의 규칙을 따르기. 만약 사이트 방문객을
'user’
라고 부르기로 했다면, 이와 관련된 변수를currentVisitor
나newManInTown
이 아닌currentUser
나newUser
라는 이름으로 지어야 한다!