Front/Javascript
DeepDive: 변수
akii
2023. 11. 3. 16:25
04장 변수
변수(Variable)
: 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 그 메모리 공간을 식별하기 위해 붙인 이름, 값의 위치를 가리키는 상징적인 이름
var result = 10 + 20;
새로운 값 (변수 값) 30이 메모리에 저장: 할당(assignment, 대입, 저장)
-> result 라는 변수명으로 저장된 메모리를 불러올수 있다:참조(reference)
변수 선언 : 1️⃣ 변수 선언 단계 -> 2️⃣ 초기화 단계: undefined 값이 할당된다.
var score; // 변수 선언
호이스팅: 자바스크립트 엔진은 모든 선언문을 런타임(소스코드가 한줄씩 순차적으로 실행되는 시점) 이전 단계에서 먼저 실행한다.(소스코드 평가 과정)
console.log(score); // undefined
var score // 1️⃣ 런타임 전에 실행 되기에 에러 ❌
score = 80; // 2️⃣ 값의 할당
console.log(score); // 80
값의 할당은 런타임에 실행된다.
값의 재할당 : 이미 값이 할당되어있는 변수에 새로운 값을 다시 할당, 새로운 메모리에 에 값을 저장한다.
(자바스크립트는 가비지 콜렉터에 의해 불필요한 값들이 자동 해제되서 메모리 누수를 방지)
** 상수(Constant): 변수와 달리 값을 재할당 할 수 없어서 저장된 값을 변경할수 없는 값 ex) const
식별자(identifier) : 어떤 값을 구별해서 식별해낼 수 있는 고유한 이름
1️⃣ 특수문자를 제외한 문자, 숫자, 언더스코어(_), 달러 기호 포함 가능
2️⃣ 문자, 언더스코어, 달러기호로 시작, 숫자로 시작 ❌
3️⃣ 예약어(프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어)는 사용할 수 없음
var first-name; // ❌ 특수문자
var 1st; // ❌ 숫자로 시작
var this; // ❌ 예약어
var 이름; // 사용가능하지만 유니코드 문자는 권장하지 않음
// 자바스크립트 대소문자 구별 ⭕️, 아래는 각각 별개의 변수
var firstname;
var FIRSTNAME;
var firstName; // 카멜 케이스(camelCase)
var FirstName; // 파스칼 케이스(PascalCase)