차근차근 개발중

[JavaScript] 변수 본문

개발/JavaScript

[JavaScript] 변수

zaenny 2024. 3. 8. 11:33

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