JavaScript 2.4
변수와 상수
- 대다수의 자바스크립트 애플리케이션은 사용자나 서버로부터 입력받은 정보를 처리하는 방식으로 동작한다.
- 변수는 이렇게 입력받은 정보를 저장하는 용도로 사용된다.
변수(variable)
- 변수는 데이터를 저장할 때 쓰이는 ‘이름이 붙은 저장소’이다.
-
자바 스크립트에선 let 키워드를 사용해 변수를 생성한다.
- 아래 코드는 message라는 이름을 가진 변수를 생성(선언)한다.
let message;
- 할당 연산자 =를 사용해 변수 안에 데이터를 저장한다.
let message;
message = 'Hello'; // 문자열을 저장합니다.
- 문자열이 변수와 연결된 메모리 영역에 저장되었기 때문에 변수명을 이용해 문자열에 접근할 수 있다.
let message;
message = 'Hello!';
alert(message); // 변수에 저장된 값을 보여줍니다.
- 변수 선언과 값 할당을 한 줄에 작성할 수도 있다.
let message = 'Hello!'; // 변수를 정의하고 값을 할당합니다.
alert(message); // Hello!
- 한 줄에 여러 변수를 선언하는 것도 가능하다.
- 하지만 가독성을 위해 한 줄에는 하나의 변수만 작성하는 것을 권장한다.
let user = 'John', age = 25, message = 'Hello';
// 가독성
let user = 'John';
let age = 25;
let message = 'Hello';
- 변수 정의에는 여러 방식이 있다.
let user = 'John',
age = 25,
message = 'Hello';
let user = 'John'
, age = 25
, message = 'Hello';
let 대신 var
- var 는 오래된 방식이다.
- let과 거의 동일하게 동작한다.
var message = 'Hello';
현실 속 비유
- 상자 안에 데이터를 저장하는데 상자에 특별한 이름표가 붙어있다.
- 상자 속엔 어떤 값이든 넣을 수 있고 원하는 만큼 값을 변경할 수 있다.
- 값이 변경되면 이전 데이터는 변수에서 제거된다.
let message;
message = 'Hello!';
message = 'World!'; // 값이 변경되었습니다.
alert(message);
- 변수 두개를 선언하고 한 변수에 데이터를 다른 변수에 복사할 수도 있다.
let Hello = 'Hello world!';
let message;
// Hello의 'Hello world' 값을 message에 복사합니다.
message = Hello;
// 이제 두 변수는 같은 데이터를 가집니다.
alert(Hello); // Hello world!
alert(message); // Hello world!
- 변수를 두번 선언하면 에러가 발생한다.
let message = "This";
// 'let'을 반복하면 에러가 발생합니다.
let message = "That"; // SyntaxError: 'message' has already
- 함수형 프로그래밍 언어는 변숫값 변경을 금지한다.
- 스칼라, 얼랭이 대표적인 함수형 언어이다.
변수 명명 규칙
- 자바 스크립트에선 두 가지 제약 사항이 있다.
- 변수명에는 오직 문자와 숫자, 그리고 기호 $와 _만 들어갈 수 있다.
- 첫 글자는 숫자가 될 수 없다.
- 대소문자는 구별된다.
- 예약어는 변수명으로 사용할 수 없다.
- 예시 : let, class, return, function
- 변수는 대개 정의되어 있어야 하지만 단순히 값을 할당해 변수를 생성하는 것이 가능하다.
- Use strict를 사용하지 않아야 한다.
상수
- 변화하지 않는 변수를 선언할 때는 let 대신 const 를 사용한다.
-
const로 선언한 변수를 상수라고 부른다. 상수는 재할당할 수 없으므로 상수를 변경하려고 하면 에러가 발생한다.
-
대문자 상수
- 기억하기 힘든 값을 변수에 할다해 별칭으로 사용할 수 있다.
- 이런 상수는 대문자와 밑줄로 구성된 이름으로 명명한다.
- 변수명은 간결하고 명확해야 하며 담고 있는 것이 무엇인지 잘 설명할 수 있어야 한다.