변수
변수 선언과 초기화
변수는 이름이 붙은 메모리 공간으로, 데이터를 저장하고 변경할 수 있습니다. 최신 자바스크립트에서는 let 키워드를 주로 사용하여 변수를 선언합니다.
변수를 선언한 후 나중에 값을 할당할 수 있고, 선언과 동시에 초기화를 할 수 있습니다.
// 선언 후 할당
let a;
a = 1;
// 선언과 동시에 초기화
let b = 1;
동적 타이핑
자바스크립트는 동적 타입 언어이므로, 한 변수에 다양한 값을 자유롭게 할당할 수 있습니다.
let a = "test"; // 문자열
a = 1; // 숫자
a = { a: 1 }; // 객체
상수
상수는 한 번 초기화되면 값을 변경할 수 없는 변수입니다. const 키워드를 사용하여 선언과 동시에 초기값을 할당해야 합니다.
const TEST = 1;
// 재할당 시 에러
TEST = 2; // Error 발생
변수와 상수의 네이밍 규칙
변수 네이밍 규칙
- 간결하면서도 변수의 역할을 명확히 표현
- 여러 단어가 합쳐진 경우 카멜 케이스 사용
더보기카멜케이스(CamelCase) 란?
여러 단어로 네이밍을 작성할때 첫 단어는 소문자로 시작하고 그 다음 단어부터 첫글자를 대문자로 작성합니다.
ex) getUserName, totalAmount - 예약어 및 특수문자 주의
상수 네이밍 규칙
- 변경되지 않는 값임을 한눈에 알 수 있도록 대문자와 언더스코어를 활용
const MAX_CONNECTIONS = 100;
변수의 스코프
스코프란?
변수가 참조될 수 있는 범위
블록 스코프
let과 const로 선언한 변수는 블록단위로 유효합니다.
{
let test = 1;
console.log(test) // 블록안에 있기 때문에 1
}
console.log(test) // 블록 밖에 있어서 Error 발생
함수 스코프
var 키워드는 함수 스코프를 가지며, 블록 스코프를 무시합니다.
{
var test = 1;
console.log(test) // 1 발생
}
console.log(test) // 함수 스코프라서 1 발생
function test() {
var a = 1;
console.log(a) // 함수 스코프라서 1 발생
}
console.log(a) // 함수 밖이라서 Error 발생
var 키워드는 블록 스코프를 무시하므로, 의도치 않는 변수 노출이 있을 수 있으므로, let 또는 const를 사용해야 합니다.
값 복사와 참조
원시 타입의 값 복사
숫자, 문자열, 불리언 등의 값은 직접 복사됩니다.
let a = 1;
let b = a;
b = 2;
console.log(1) // 1 발생(원본이 변경되지 않음)
참조 타입의 복사
객체, 배열 등은 메모리의 주소가 복사됩니다.
let a = { x: 1 };
let b = a;
b.x = 2;
console.log(a.x) // 2 발생(같은 객체를 참조)
변수 선언 없이 사용
엄격 모드가 없으면 변수 선언 없이 값을 할당할 수 있지만 전역 변수로 생성되어 의도치 않은 버그 생성됩니다.
'JavaScript' 카테고리의 다른 글
[JavaScript] 브라우저 기본 모달창(alert, prompt, confirm) (0) | 2025.02.05 |
---|---|
[JavaScript] 자료형 (0) | 2025.02.05 |
[JavaScript] 엄격 모드(Strict Mode) (0) | 2025.02.05 |
[JavaScript] 자바스크립트 코드 구조 (0) | 2025.02.05 |
[JavaScript] 자바스크립트 실행 환경 설정 (0) | 2025.02.05 |