[JavaScript] 변수와 변수 스코프

박하린·2025년 5월 31일

JavaScript

목록 보기
1/2

변수

💡 JavaScript에서 변수는 값을 저장하는 공간이며, 선언 방식에 따라 값의 변경 여부가 달라진다.

1. 변수의 종류

1) var - 변경 가능한 값이며, let이 생기면서 사용하지 않게 된다.
2) let - var과 같이 변경 가능한 값을 저장하는 변수이다.
3) const - 변수에 할당한 값을 변경할 수 없지만, 객체나 배열을 const로 선언한 경우 내부 속성이나 요소는 변경할 수 있다.

2. 변수의 선언

let name = "변수";
console.log(name);
  • [변수형] [변수명]; 형식으로 변수를 선언할 수 있으며, 선언 한 후 값을 초기화하지 않을 경우에는 초기값으로 undefined가 들어간다.
    하지만 const의 경우, 값을 선언한 이후에 바꿀 수 없기 때문에 값을 초기화하지 않고 변수를 선언할 수 없다.
  • [변수형] [변수명] = [초기화 값];라는 코드로 변수를 선언하면서 값을 초기화할 수 있다.
  • 여기서 console.log();는 브라우저의 개발자 도구인 console창에 소괄호 안의 값을 출력하는 함수이다.

3. 변수 네이밍 규칙

javascript에서 변수의 이름을 짓는 규칙으로는 카멜 케이스(camelCase)방식을 주로 사용하는 것이 좋다.

let testName = 'camelCase';
let test_name = 'snake_case';
let TestName = 'PascalCase';

1) 카멜 케이스 방식은 첫번째 단어를 소문자로 쓴 다음, 다음 단어의 첫번째 글자를 대문자로 작성하는 방식이며, javascript에서 많이 사용되는 방식이다.
2) 스네이크 케이스 방식은 공백 부분을 언더바로 채우는 방식이지만, javascript에서는 거의 사용하지 않는다.
3)파스칼 케이스 방식은 카멜 케이스와 비슷하지만, 첫번째 단어의 첫글자도 대문자를 사용한다. 주로 클래스 이름에서 사용된다.

4. 변수 스코프

💡 스코프란 변수와 함수가 접근 가능한 범위이다.

var은 함수스코프를 가지며, constlet은 블록 스코프를 가진다.

🌎전역 스코프(Global scope)

전역 변수로 선언하며, 코드에 어디서든 참조할 수 있다.

📚함수 스코프(Function scope)

지역 변수로, 함수 내에서만 사용할 수 있다.

📓블록 스코프(Block scope)

let과 const를 활용해 선언된 변수는 블록 레벨 스코프를 가지며, 이는 {중괄호} 내에서만 사용할 수 있다.

⛓️스코프 체인(Scope chain)

function overF() {
  let val = "Hello World";
  function inF() {
    console.log(val); //내부 함수에서 외부 함수의 변수 접근
  }
}

javascript에서는 함수가 중첩될 수 있으므로 내부 함수는 외부 함수의 변수에 접근할 수 있는데, 이를 스코프 체인이라고 한다.

💔스코프의 주요 규칙

1) 안쪽 스코프에서 바깥쪽 스코프에 접근할 수 있지만, 반대는 불가능하다

안쪽 스코프에서 선언한 식별자는 바깥쪽에서 접근할 수 없다.
반대로 바깥쪽 스코프에 존재하는 식별자는 안쪽 스코프에서 접근⭕️

2) 스코프는 중첩 가능하다

3) 전역 스코프와 지역 스코프

가장 바깥쪽 스코프를 전역 스코프(global scope)라고 하며, 그 이외는 지역 스코프(local scope)라고 한다.

4) 지역 변수는 전역 변수보다 우선 순위가 높다

전역 스코프에서 선언한 변수는 전역 변수, 지역 스코프에서 선언한 변수는 지역 변수다.
지역 변수는 전역 변수보다 우선 순위가 더 높다

profile
배우고 성장하는 중입니다.

0개의 댓글