let 

 

let을 사용한 경우: 

  1. let으로 선언된 변수 i는 블록 스코프를 갖기 때문에 for 루프 안에서만 유효합니다.
  2. 루프 외부에서 console.log(i);를 호출하면 "Error: i is not defined"가 발생합니다.
  3. let은 블록 스코프를 갖기 때문에 블록 외부에서는 변수에 접근할 수 없습니다.
// // 지역 변수
for (let i = 0; i < 10; i = i + 1) {
    console.log(i);
}

console.log(i);  // Error: i is not defined 에러 발생

 

 

var

 

var를 사용한 경우:

  1. var로 선언된 변수 i는 함수 스코프를 갖기 때문에 블록 내에서 선언되었더라도 루프 외부에서도 유효합니다.
  2. 따라서 console.log(i);는 루프 외부에서도 동작하며, 결과적으로 마지막으로 할당된 값인 10을 출력합니다.
  3. var는 함수 스코프를 갖기 때문에 블록 스코프를 가지지 않아서 블록 내부에서 선언된 변수도 함수 내에서 유효합니다.
for (var i = 0; i < 10; i = i + 1) {
    console.log(i);
}

console.log(i);
0
1
2
3
4
5
6
7
8
9
10

 

function example() {
    if (true) {
        var x = 10; // 블록 내부에서 선언된 변수
    }
    console.log(x); // 함수 내에서 유효하므로 출력 가능
}

example(); // 10

 

 

  • 위의 코드에서 var x는 if 블록 내에서 선언되었지만, 함수 example 내에서는 어디에서든 접근 가능합니다.
  • 이것은 var가 함수 스코프를 가지기 때문에 발생하는 특징입니다.

 

 

요약

  • let은 블록 스코프를 가지므로 블록 외부에서 변수에 접근할 수 없지만,
  • var는 함수 스코프를 가지므로 블록 외부에서도 변수에 접근할 수 있습니다.

 

 

Node.js에서는 전역변수들을 모두 global 객체에서 관리한다.
브라우저(b_scope.html)에서는 window 객체에서 전역변수를 관리한다.
따라서 어디에서 사용될 지 모를 때에는 globalThis 객체를 사용하면 된다.

// 전역 변수: globalThis 객체를 사용하여 전역 변수 x를 설정
globalThis.x = 10;

// 전역 변수: 외부 블록에서 선언된 전역 변수 y
let y = 10;

function f() {
    // 지역 변수: 함수 내에서만 유효한 지역 변수 x
    let x = 20;
    console.log("globalThis.x:", `${globalThis.x}`, " x :", x);
}

// 함수 f 호출
f();

// 전역 변수 y 출력
console.log("y:", `${y}`);

// 전역 변수 x 출력
console.log("globalThis.x:", `${globalThis.x}`);
globalThis.x: 10  x : 20
y: 10
globalThis.x: 10

 

 

const

  1. const는 상수를 선언할 때 사용되는 키워드로, 한 번 값을 할당하면 재할당이 불가능합니다.
  2. 상수는 프로그램에서 항상 고정된 값을 가지며 변경되지 않아야 하는 경우에 사용됩니다.

 

const ERROR_CODE = 403;
// ERROR_CODE = 404; // Error: Assignment to constant variable.
console.log(ERROR_CODE);
403

 

 

 

  1. const ERROR_CODE = 403;: ERROR_CODE라는 상수를 선언하고, 초기값으로 403을 할당합니다.
  2. 주석 처리된 ERROR_CODE = 404;: const로 선언된 상수는 재할당이 불가능하기 때문에 이 줄의 코드를 주석 처리하지 않으면 에러가 발생합니다. 에러 메시지는 "Assignment to constant variable."로 나타납니다.
  3. console.log(ERROR_CODE);: 상수 ERROR_CODE의 값을 출력합니다. 이 경우에는 403이 됩니다.

 

'컴퓨터 비전 > Javascript' 카테고리의 다른 글

function  (0) 2024.01.29
oper , switch  (0) 2024.01.29
javascript 메소드 정리  (0) 2024.01.28
queue.js  (0) 2024.01.28
자바스크립트  (0) 2024.01.28