차근차근 개발중
[JavaScript] 변수 본문
1. 변수
· 변수(variable)
- 데이터를 담을 수 있는 메모리 공간의 이름
· 변수선언(declaration)
- 어떤 타입의 데이터를 담을 수 있는 메모리 공간을 할당하도록 명령하는 것
// var 변수 선언
var name;
// let 변수 선언
let name;
// const 변수 선언(상수)
// 상수 선언시 반드시 초기 값 설정, 설정하지 않을 경우 에러 출력
const name; // Missing initializer in const declaration
const pi = 3.14;
let name = “이름” , age = 20 // 한 번에 여려 변수를 선언 할 수 있다.
· 변수 유효 범위(scope)
- 선언된 변수가 메모리에서 삭제되지 않고 영향을 미칠 수 있는 코드 범위
· var
- 초기 js에서의 변수 선언방식
- 변수 scope : 함수 level _ 함수 내에서 선언된 변수는 함수 내에서만 유효하며 함수 외부에서는 참조 불가
- 사용 시 문제점
˚ 호이스팅
˚ 중복선언
var name = "이름";
console.log(name); // 이름
//중복 선언
var name = "성명";
console.log(name); // 성명
˚ 상수(불변값) 생성불가
˚ 루프 안의 선언이 밖에서도 유효
console.log(number); // undefined
var number = '100';
console.log(number); // 100
˚ 키워드 생략가능
· let, const
- ES6에서 새롭게 추가된 변수 선언 키워드
- 변수 scope : 블록 level _ 코드 블록 내에서 선언된 변수는 코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조불가.
- let은 일반 변수, const는 상수(불변값) 선언에 사용됨
- var과 차이점
˚ 중복선언 불가
let x = 1;
let y = 10;
let z = x + y;
console.log('z : ' , z);
let x = 11; //SyntaxError: Identifier 'x' has already been declared
˚ 호이스팅 방지처리
console.log(x);
let x = 1; //ReferenceError: Cannot access 'x' before initialization
˚ 키워드 생략불가(생략할 시, var로 취급)
· 호이스팅(Hoisting)이란?
- 변수 선언을 중간에서 해도 코드 최상단부에서 선언된 것처럼 동작하는 현상
· 정리
중복선언 | 재할당 | 변수의 스코프(유효범위) | 변수 호이스팅 | |
var | o | o | 함수 레벨 | o |
let | x | o | 블록 레벨 | x |
const | x | x | 블록 레벨 | x |
참고자료 : 제로베이스 - 핵심만 골라 먹는 자바스크립트
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 함수와 메서드 (0) | 2024.12.24 |
---|
Comments