Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

자바스크립트에서 변수는 데이터를 저장하고 참조하는 식별자(Identifier)로 사용되는 요소입니다. 변수는 프로그램 내에서 값을 저장하고 이를 나중에 검색하거나 수정하는 데 사용됩니다. 자바스크립트 변수는 프로그램에서 데이터를 저장하고 조작하는 핵심 도구이며, 데이터를 임시로 보관하고 다루는 데 필수적입니다. 아래 var, let, const 는 키워드는 전역 선언이 가능합니다. 다음은 자바스크립트 변수의 상세 설명입니다.

 


 

 

1. 변수 선언

 

자바스크립트에서 변수를 생성하기 위해 var, let, 또는 const 키워드를 사용합니다. 이들 키워드를 사용하여 변수의 범위와 재할당 가능성을 결정합니다.

 

l  var: 함수 범위를 가지며 변수를 재선언할 수 있습니다.

l  let: 블록 범위를 가지며 변수를 재선언할 수 없습니다.

l  const: 블록 범위를 가지며 변수를 상수로 선언하며 재할당이 불가능합니다.

 

 

2. var 키워드 함수 범위

 

var 키워드를 사용하여 선언한 변수는 함수 범위(Function Scope)를 가집니다. 함수 범위란 변수의 유효 범위를 함수 내부로 제한하는 규칙을 말합니다. 함수 범위에서 선언된 변수는 해당 함수 내부에서만 접근할 수 있고, 함수 외부에서는 보이지 않습니다.

 

(1) 변수 선언 이전 호출

 

변수를 선언하기 전에 변수에 접근하더라도 에러가 발생하지 않습니다. 값이 undefined로 초기화됩니다.

 

function exampleFunction() {
    console.log(myVar); // 에러가 아닌 undefined 출력
    var myVar = 10;
}
exampleFunction();
 

[출력]
Undefined

 

(2) 변수의 중복 선언

 

함수 범위 내에서 같은 변수를 중복으로 선언해도 오류가 발생하지 않습니다. 중복 선언하면 마지막에 선언한 값으로 변수가 재할당합니다. 함수 범위는 변수의 유효 범위를 함수 내로 제한하여 변수 충돌을 방지하고 함수 내에서 필요한 데이터를 안전하게 보관하는 데 사용됩니다. 그러나 ES6에서 도입된 let const 키워드는 블록 범위(Block Scope)를 도입하여 블록 내에서만 유효한 변수를 선언할 수 있게 하였으며, 이를 더 선호하는 추세입니다.

 

function exampleFunction() {
  var myVar = 5;
  var myVar = 10; // 중복 선언 가능
  console.log(myVar); // 10 출력
}
exampleFunction();
 

[출력]
10

 

(3) 함수 외부에서 호출하기

 

함수외부에서 내부 선언 변수를 호출하면 에러가 발생합니다.

 

function exampleFunction() {
  var myVar = 5;
  var myVar = 10; // 중복 선언 가능
  console.log(myVar); // 10 출력
}
exampleFunction();
console.log(myVar);
 

[출력]
10

d:\\Project\\5. Web\\NodeJS\\JavascriptSample\\sample\\function.js:7
console.log(myVar) ;            ^

ReferenceError: myVar is not defined
    at Object.<anonymous> (d:\\Project\\5. Web\\NodeJS\\JavascriptSample\\sample\\function.js:7:13)

 

 

3. let 키워드 블록 범위

 

let 키워드를 사용하여 선언한 변수는 블록 범위(Block Scope)를 가집니다. 블록 범위란 변수의 유효 범위를 중괄호({})로 둘러싸인 블록 내로 제한하는 범위 규칙을 말합니다. let로 선언된 변수는 블록 내에서만 유효하며, 블록 외부에서는 접근할 수 없습니다.

 

(1) 변수의 범위

 

let로 선언한 변수는 해당 변수가 선언된 블록 내에서만 유효합니다. 블록 외부에서는 변수에 접근할 수 없으며, 변수는 블록 내부에서만 사용 가능합니다.

 

if (true) {
  let blockVar = 10;
  console.log(blockVar); // 10 출력
}
console.log(blockVar);
 

[출력]
console.log(blockVar);
            ^
ReferenceError: blockVar is not defined
    at Object.<anonymous> (d:\\Project\\5. Web\\NodeJS\\JavascriptSample\\sample\\function.js:5:13)

 

 

(2) 변수의 중복 선언

 

let으로 선언한 변수를 같은 블록 내에서 중복 선언하면 오류가 발생합니다.

 

let myVar = 5;
let myVar = 10; // 에러: 중복 선언

 

 

(3) 이전에 선언한 변수

 

let 으로 선언한 변수는 이전에 사용하면 var 와 달리 오류가 발생합니다. 기화되지 않은 상태로 남아 있어, 변수 선언 이전에 변수에 접근하면 ReferenceError가 발생합니다. let 키워드를 사용하여 변수를 블록 범위로 선언하면 변수 충돌을 방지하고 블록 내에서 필요한 데이터를 안전하게 보관할 수 있습니다. 이것은 코드의 가독성을 향상시키고 변수의 예상치 못한 수정을 방지하는 데 도움이 됩니다. ES6 이후에는 let const를 사용하여 블록 범위를 지원하며, 이러한 키워드가 이전의 var보다 더 권장되고 사용되는 추세입니다.

 

console.log(myVar); // 에러: 변수 myVar가 초기화되지 않았음
let myVar = 10;

 

 

4. const 키워드

 

const 키워드를 사용하여 선언한 변수는 블록 범위(Block Scope)를 가집니다. 블록 범위는 변수의 유효 범위를 중괄호({})로 둘러싸인 블록 내로 제한하는 범위 규칙을 나타냅니다. const로 선언된 변수는 블록 내에서만 유효하며, 블록 외부에서는 접근할 수 없습니다.

 

(1) 변수의 범위

 

const로 선언한 변수는 해당 변수가 선언된 블록 내에서만 유효합니다. 블록 외부에서는 변수에 접근할 수 없으며, 변수는 블록 내부에서만 사용 가능합니다.

 

if (true) {
  const blockVar = 10;
  console.log(blockVar); // 10 출력
}
console.log(blockVar); // 에러: blockVar는 블록 외부에서 접근 불가

 

 

(2) 변수의 초기화

 

const 변수는 반드시 선언과 동시에 초기화되어야 합니다. 한 번 초기화된 const 변수는 재할당이 불가능합니다.

 

const pi = 3.14159; // 초기화 필수
pi = 3.14;          // 에러: 재할당 불가

 

(3) 변수의 중복 선언

 

const로 선언한 변수를 같은 블록 내에서 중복 선언하면 오류가 발생합니다.

 

const myVar = 5;
const myVar = 10; // 에러: 중복 선언

 

 

(4) 상수 값

 

const로 선언한 변수는 상수(Constant)로 간주되며, 초기 할당 이후에는 값을 변경할 수 없습니다.

 

const daysInAWeek = 7;
daysInAWeek = 8; // 에러: 상수 값 변경 불가

 

반응형
Posted by 녹두장군1
,