ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #JavaScript Grammar_변수와 상수
    Javascript 2023. 10. 15. 21:22

    # 변수란? 

    - 데이터를 저장하고 나중에 사용할 때 데이터를 참조하는데 사용함.

    - 메모리 상의 위치에 이름을 붙인 것이며, 데이터 위치를 가리키기 위한 이름 또는 식별자로 사용함.

     

    # 상수란? 

    - 변수와 유사하지만, 한 번 할당하면 값을 변경할 수 없는 식별자

    - 주로 변하지 않아야 하는 값에 사용되며, 코드의 가독성과 안정성을 향상시킴 

     

    상수 예시) 

    const pi = 3.14159265359; // 'pi' 상수에 원주율 값을 할당한 후 다시 할당 불가능

     


    <변수의 5가지 주요 개념>

    var myVar = "Hello World!"; //가 있다고 가정

    1. 변수 이름(Variable Name):

    - 변수 이름은 데이터를 고유하게 식별하는 이름. 이것은 변수를 사용하여 값을 저장하고 추적하는 방법 

    - 변수 이름은 일반적으로 문자, 숫자, 밑줄(_)로 구성되며 대소문자를 구분.

    - 예시) `myVar` 라는 변수 이름.  

     

    2. 변수 값(Variable Value): 

    - 변수 값은 변수에 실제로 저장되는 데이터 정보이며, 변수가 "가지고 있는" 데이터.

    - 변수 값은 어떠한 데이터 형식이든 가능하며, 숫자, 문자열, 객체 등이 될 수 있음.

    - 예시) `myVar`의 값은 `"Hello World!"`.

     

    3. 변수 할당(Variable Assignment): 

    - 변수 할당은 변수에 값을 저장하는 행위를 의미, 변수를 초기화 하거나 업데이트할 때 사용.

    - 할당 연산자 ('=')를 사용하여 값을 변수에 넣음.

    - 예시)`myVar` 변수에 `"Hello World"`를 할당하는 것 >>> `myVar = "Hello World!"`. 

     

    4. 변수 선언(Variable Declaration): 

    - 변수를 사용하려면 먼저 변수를 선언해야 함, 변수 선언은 컴퓨터에 이 변수를 인식하도록 하는 행위.

    - 선언 시, `var`, `let`, 또는 `const` 키워드를 사용하며 이는 변수의 유형을 지정. 

    - 예시) `var` 키워드를 사용하여 `myVar` 변수를 선언 >>> `var myVar;`.

     

    5. 변수 참조(Variable Reference): 

    - 변수 참조는 변수의 할당된 값을 읽거나 사용하는 행위를 말하며, 변수의 값을 다른 코드에서 사용할 수 있게 함. 

    - 예시) `myVar` 변수의 값을 콘솔에 출력하는 것 >>> `console.log(myVar)`.

     


    <변수를 선언하는 3가지 방법>

     

    1. `var`(옛날 방식) :

    - `var`로 선언한 변수는 함수 스코프를 가지며, 호이스팅(hoisting)이 발생함.

    - `var`로 선언한 변수는 중복 선언이 가능하며, 동일한 변수의 이름을 여러 번 선언해도 오류가 발생하지 않음. 

    - `var`는 값을 재할당할 수 있음. 

    var myVar = "Hello World"; 
    console.log(myVar); // "Hello World"
    
    myVar = "New Value"; // 값 변경 가능
    console.log(myVar); // "New Value"

     

    2. `let`(모던 방식_ ES6에서 새롭게 도입된 방식) :

    - `let`을 사용하여 변수를 선언할 때, 변수는 블록 스코프를 가지며 호이스팅이 발생함. 

    - `let`으로 선언한 변수는 중복 선언이 불가능하며, 같은 변수 이름을 두 번 선언하면 오류가 발생함.

    - `let`은 값을 재할당할 수 있음. 

    let myLet = "Hello World"; 
    console.log(myLet); // "Hello World"
    
    myLet = "New Value"; // 값 변경 가능
    console.log(myLet); // "New Value"

     

    3. `const`(상수_ ES6에서 새롭게 도입된 방식):

    - `const`를 사용하여 변수를 선언할 때, 변수는 블록 스코프를 가지며 한 번 할당하면 값을 변경할 수 없음.

    - `const`로 선언한 변수는 중복 선언이 불가능하며, 값을 변경하려고 하면 오류가 발생함. 

    const myConst = "Hello World"; 
    console.log(myConst); // "Hello World"
    
    myConst = "New Value"; // 오류 발생: 상수는 값 변경 불가능

     


    + 위 정리글에 나온 호이스팅(Hoisting)과 블록스코프(Block Scope)에 관하여...

    # 호이스팅(Hoisting)이란? 

    - JavaScript에서 변수 및 함구 선언을 해당 스코프의 최상단으로 "끌어 올리는" 동작을 나타냄.

    - 이것은 코드 실행 전에 발생하며 개발자가 코드를 작성한 순서와는 다르게 작동할 수 있음. 

     

    예시 1) 변수 선언 호이스팅:

    - JavaScript는 변수 선언문을 해당 스코프의 최상단으로 끌어 올림.

    - 이렇게 하면 변수를 선언하기 전에 변수를 참조할 수 있지만, 변수 초기화(값 할당)는 끌어 올라가지 않으며 선언 시에만 발생함.

    console.log(myVar); // 출력: undefined
    var myVar = 42;

    위의 코드는 실제로 다음과 같이 작동함

    var myVar;
    console.log(myVar); // 출력: undefined
    myVar = 42;

    예시 2) 함수 선언 호이스팅: 

    함수 선언도 마찬가지로 해당 스코프의 최상단으로 끌어 올리며 함수를 선언하기 전에 호출이 가능함. 

    sayHello(); // 출력: "Hello!"
    function sayHello() {
      console.log("Hello!");
    }

    위의 코드는 실제로 다음과 같이 작동함 

    function sayHello() {
      console.log("Hello!");
    }
    sayHello(); // 출력: "Hello!"

    - 호이스팅은 코드 작성의 편의성을 높이지만, 주의해서 사용을 해야함.

    - 유지보수하기 쉽게 하려면 변수와 함수를 사용하기전에 선언하는 것이 좋음. 

     

    #블록 스코프(Block Scope)란? 

    - 변수나 상수가 유효한 번위를 나타내는 개념

    - 중괄로 `{ }`로 둘러 쌓인 코드 블록 내에서 선언된 변수나 상수가 해당 블록 내에서만 유효함.

    - 블록 외부에서는 접근불가능.

    - 즉, 변수나 상수가 선언된 중괄호 내에서만 사용 가능한 범위를 뜻함. 

     

    블록 스코프 예시) 

    if (true) {
      let blockScopedVar = "I'm in a block";
      console.log(blockScopedVar); // "I'm in a block"
    }
    
    console.log(blockScopedVar); // 에러 발생: blockScopedVar는 블록 외부에서 접근 불가능

    - 위의 코드에서 `blockScopedVar`는 `if`문 내에서 선언되었으며, `if` 블록 외부에서는 접근할 수 없음.

Designed by Tistory.