본문 바로가기

자바스크립트/변수

[자바스크립트] - 변수 const

  const   

재할당 재선언  
X X  

 

const역시 let이나 var와 마찬가지로 변수를 만드는 키워드이다. 

이름에서 알 수 있듯이 const로 선언한 변수는 '상수변수'(constant variable)이다.
상수는 프로그램 안에서 변하지 않는 값을 뜻한다. 즉, 변하면 안되는 값을 변수로 선언할 때 const를 사용한다.
프로그램에서 특정 상숫값을 자주 사용한다면 변수에 담아서 사용하는 것이 편리하다.
const로 선언한 변수는 값을 재할당하거나, 이름을 재선언할 수 없으며

let을 사용한 변수처럼 블록레벨의 스코프를 가진다.(선언된 중괄호 안에서만 유효하다)

*선언할때 값도 같이 넣어놔줘야한다.*

회원가입정보를 넣어놓거나 태그를 선택해서 넣어놓을 때등 사용한다. 


비주얼스튜디오에서는 오류가 안나지만 콘솔창에서는 오류가 나는 것을 볼 수 있다. 

그래서 콘솔창을 켜놓고 작업해야한다. 


currentYear는 상수변수라서 값을 재할당하면 오류나고, 다시 재선언도 할 수 없다. 

다른 변수로 가져와서 같은 이름으로 쓸 수도 없다. 


* 상수변수는 반드시 선언하면서 값도 같이 넣어줘야한다. 

선언할 때 값이 없으면 오류난다. 선언 먼저하고 나중에 값을 할당할 수 없다. 


      /*상수변수  currentYear의 값을 가져와서 쓸 수 있다.
       currentYear에 20을 더해 let year에 할당하면 2044가 잘 출력된다. */

      let year = currentYear + 20;
      console.log(year);

      /*상수변수 안에 배열이 들어 있다면 배열 자체는 바꿀 수 없지만 배열 안에 있는 데이터는 바꿀 수 있다.*/

      const array = [50, "hi", true, null];

      //배열에서 인덱스번호 1번째 데이터를 꺼내서  let chocolat1에 할당하기 - 가능
      let chocolat1 = array[1];
      console.log(chocolat1);

      //상수변수 arrey 배열 안에 있는 인덱스 1번의 데이터를 직접 바꾸기 - 가능
      array[1] = "bye";
      console.log(array[1]);

      //배열 전체를 변화시킬 수는 없다. 배열 자체를 지우고 문자열을 넣을려고 하면 오류난다. 
      array = "안녕하세요";
 
     //상수변수 array 배열의 마지막 인덱스에 '마지막거'라는 데이터를 추가하기 - 가능
      array.push("마지막거");
      console.log(array);

배열 안에 있는 데이터를 바꾸는 것은 가능하나 배열 자체를 다른 값으로 바꾸는 건 불가능하다. 

 

상수 변수 안에 있는 객체도 객체의 속성값을 바꾸거나 속성을 추가하는 것은 가능하다. 

상수 변수 안에 있는 객체 자체를 다른 데이터로 바꾸는 것 - 불가능

 
 const member = {
        name: "김땡땡",
        usesrId: "dotKim",
        userPW: "1234",
        age: 20,
      };

      member.name = "이땡땡";
      console.log(member);
 

 /*상수변수 안에 배열이 들어 있다면 배열 자체는 바꿀 수 없지만 배열 안에 있는 데이터는 바꿀 수 있다.*/

      const array = [50, "hi", true, null, { name: "kim" }];

      //배열에서 kim꺼내기
      console.log(array[4].name);

      //kim 을 park으로 바꾸기
      console.log((array[4].name = "park"));