본문 바로가기
Frontend/JavaScript

JavaScript의 기초 문법 : 변수

by 코딩쥐 2024. 7. 15.

 변수는 값을 담을 수 있는 공간을 뜻한다. JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능하다.

 

변수 선언

  • var 변수명 = 데이터;
    함수 전체에서 유효한 변수로 변수를 다시 선언해서 재할당이 가능하다. 

  • let 변수명 = 데이터;
    한 번만 선언하고, 선언한 내용을 계속 사용하려는 경우에 사용한다.

  • const 변수명 = 데이터;
    상수형으로 고정적으로 데이터를 사용하려는 경우에 사용한다. 

 

변수 작성법

  1.  숫자로 시작할 수 없다.
  2. 변수명 첫 글자에는 $, _, 영문자만 가능하다. 
  3. 대소문자를 구분해야 한다.

    <아래 내용은 권장사항> 
  4. 변수는 대문자가 아닌 소문자 명사형으로 시작한다. 
  5. 변하지 않은 환경변수의 값은 대문자로 작성한다. 
  6. 여러 단어의 조합으로 작성될 경우 낙타표기법(camelCase)을 사용한다.
  7. 이미 정의된 예약어는 사용이 불가능하다 (ex: var for = 데이터; 사용불가능)


객체에서의 변수 선언

객체에서 변수 선언을 할 때 let을 사용할 경우 기존의 객체를 새로운 객체로 생성할 수 있다. const같은 경우에는 기존의 객체가 다른 주소를 참조하는 것을 막기 때문에, 객체에 대한 불변성을 지키는 방법의 하나로 const를 사용할 수 있다. 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let obj1 = {
            val1 : "abcd",
            val2 : 23,
            val3 : true
        }

        const obj2 = {
            val1 : "b"
        }

        obj1 = obj2;
        console.log(obj1); //{val1: 'b'}

        obj2.val2 = "안녕";
        console.log(obj2); //{val1: 'b', val2: '안녕'}
        obj2 = obj1; // TypeError: Assignment to constant variable.

    </script>
</body>

</html>

이처럼 let으로 선언된 객체의 경우에는 다른 객체의 주소를 참조할 수 있지만, const의 경우에는 다른 객체의 주소를 참조할 수 없다. 참고로 객체가 참조하는 주소만 변경이 안되는 것일 뿐, 객체의 속성은 변경이 가능하다.