변수란🤔
값이 저장된 메모리 공간의 주소를 가리키는 식별자
변수선언(키워드)✏️
var (💩)
let
const
const a = 1; // a라는 변수에 1이라는 정수의 값을 할당
*var은 예전에 쓰던 키워드로 const나 let을 적극 권장!!! 하지만 옛날 프로젝트 코드에선 자주 보임...ㅠㅠ
var | let | const | |
재할당 | ⭕ | ⭕ | ❌ |
재선언 | ⭕ | ❌ | ❌ |
스코프 | 함수 스코프 | 블록 스코프 | 블록 스코프 |
호이스팅 | ⭕ (초기값 undefined) |
⭕ (초기화 전 사용 불가) |
⭕ (초기화 전 사용 불가) |
*스코프 : 변수나 함수가 유효하게 접근할 수 있는 범위 [참고]
*호이스팅 : 변수가 선언되기 전에 코드 상에서 끌어올려지는 현상
변수규칙📌
- 문자, 숫자, 밑줄(_), 달러 기호($) 사용 가능
(변수 이름은 문자(영문 대소문자), 숫자, 밑줄, 달러 기호로 시작할 수 있지만, 숫자로 시작할 수는 없음) - 대소문자 구분
- 예약어 사용 금지
이미 예약된 키워드(예: if, else, for, function 등)는 변수 이름으로 사용할 수 없음 - 특수 문자 사용 금지
- 추천 : camelCase (참고)
👉좋은 예 : userName
*식별자 : 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 변수 이름을 식별자라고도 함!
const a = 1 // a라는 식별자에 1이라는 정수의 값을 할당
var의 단점💩
- 재선언 가능
- 블록 스코프 없음
// var로 변수를 선언하면 함수 스코프를 가지므로,
// 같은 함수 내에서 같은 이름의 변수를 여러 번 선언할 수 있음
function example() {
var message = "Hello";
var message = "World"; // 같은 이름으로 재선언 가능
console.log(message); // 출력: "World"
}
example(); // "World"
// var로 선언된 변수는 블록 스코프를 가지지 않기 때문에,
// if 문 안에서 선언한 변수도 함수 전체에서 접근 가능
if (true) {
var globalVar = "I'm global"; // 블록 안에서 선언했지만, 함수 전체에서 접근 가능
}
console.log(globalVar); // "I'm global"
'자바스크립트' 카테고리의 다른 글
[JS] 함수 참조, 함수 호출 (0) | 2024.10.29 |
---|---|
[JS]자바스크립트 동작 원리(실행 컨텍스트, 스코프, 이벤트루프) (2) | 2024.10.25 |
[JS]정규표현식 (0) | 2024.10.24 |
[JS]this (2) | 2024.10.12 |
[JS]클로저(Closure) (0) | 2024.10.10 |