변수가 필요한 이유
변수(Variable)는 프로그램에서 사용되는 데이터를 일정 기간 동안 기억하여 필요한 때에 다시 사용하기 위해 데이터에 고유의 이름인 식별자(identifier)를 명시하며 데이터를 담는 바구니이자 바뀔 수 있는 공간라고 생각하면 된다.
식별자는 어떤 대상을 유일하게 식별할 수 있는 이름 ex. 변수명, 함수명, 프로퍼티명, 클래스 명
사람을 고유한 이름으로 식별하듯이 변수도 사람이 이해할 수 있는 언어로 지정한 고유한 식별자(변수명)에 의해 구별하여 참조할 수 있다.
변수와 대비되는 개념은 상수라고 하며 변하지 않는 공간
여기서 잠깐!
데이터는 메모리에 저장되어 있어 그 데이터를 참조하려면 메모리 상의 주소를 알아야 한다.
식별자는 데이터가 저장된 메모리 상의 주소를 기억하기에 메모리에 저장된 값을 참조할 수 있다. 또한 변수명을 통해 데이터의 의미를 명확히 할 수 있고, 개발자와의 커뮤니케이션을 위해 코드의 내용을 정확히 전달할 수 있으므로 더불어서 코드의 가독성이 좋아지는 효과도 있다.
변수의 선언 방법
변수명은 식별자로 불리기도 하며 명명 규칙이 존재하는데, 의무규칙으로
예약어 사용 불가능
숫자로는 시작할 수 없다.
특수문자는 _와 $만 사용 가능
띄어쓰기 사용 불가능
자바스크립트는 대/소문자를 구별하는 걸 명심한다.
var
var name; // 선언
name = 'Lee'; // 할당
var age = 30; // 선언과 할당
var person = 'Lee',
address = 'Seoul',
price = 200;
var price = 10;
var tax = 1;
var total = price + tax;
어디서든 변경할 수 있음.
재선언 O, 재할당 O
실수로 값을 업데이트해도 알아차릴 수 없는 단점. (구버전)
var는 ES5에서 사용되었을 때, 생기는 문제점은
- 함수 레벨 스코프 (지역 변수는 함수 내에서만 유효하며 전역 변수로는 참조할 수 없다)
- var 키워드 생략 허용
- 중복 선언 허용
- 변수 호이스팅
호이스팅이란? var 선언문이나 function 선언문 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작하는 특성을 말한다.
즉, 자바스크립트는 모든 선언문 [ var, let, const, function, class ] 이 선언되기 이전에 참조 가능하다.
let
var의 문제점을 해결하기 위해 let 이라는 키워드를 많이 사용한다.
const a = 5;
const b = 2;
let myName = "jiyoung";
console.log(a + b);
console.log(a * b);
console.log(a / b);
console.log("hello" + myName);
myName = "yimjiyoung";
console.log("your new name is " + myName);
새로운 것을 생성할 때 사용함. (값 can change.)
생성할 때 사용, 생성 후에 값을 바꿀 수 있음.
재선언 X, 재할당 O
const
const a = 5;
const b = 2;
const myName = "jiyoung"
console.log(a + b);
console.log(a * b);
console.log(a / b);
console.log("hello " + myName);
variable을 통해 코드를 간결하게 (값 can't change.)
상수, 생성 후 바꿀 수 X
'개발언어 > JavaScript' 카테고리의 다른 글
[JavaScript] 지정된 범위에서 난수를 발생시키는 적당한 함수 <랜덤수> 분석해보기 (0) | 2022.07.30 |
---|---|
[JavaScript] 객체와 배열이 섞인 복잡한 객체 만들어서 접근하는 방법 (0) | 2022.07.29 |
[JavaScript] 데이터 타입 Data Types 의 종류 (0) | 2022.07.27 |
Weather날씨 만들기 (0) | 2021.09.04 |
To Do List 만들기 (0) | 2021.09.03 |