Javascript

다시 시작하는 자바스크립트 - var, let, const의 차이

min' 2023. 3. 10. 15:46
728x90
반응형

 

헷갈리는 것들만 따로 정리할 예정.

deep dive 책을 함께 공부함.

 

 

1. const와 let, var의 차이

 

- const는 재할당 불가능. let은 재할당 가능.

 

- const 변수명은 대문자로 생성해야 함. 단어와 단어 사이에는 언더스코어(_)를 표기해줘야 함.

ex) const MAX_FRUITS = 5;

 

- const와 let은 코드 블록 내에서 선언시 외부에서 접근 불가. => 내부에서 선언한 변수를 지역변수라고 함.

 

-  지역변수 외에서 선언한 글로벌 변수(전역변수) let과 const는 어디서든 사용 가능

 

- var은 const와 let처럼 제한이 걸리지 않으므로 사용을 안하는 게 좋음.

 

<body>
    <div id="result"></div>
    <script>
      const price = 30000;
      const service = 2;
      // const는 const service; 이런 식으로 변수 이름만 선언 불가
      // const랑 let은 함수, if문, for문 등 코드블록 내에서 선언시
      // 외부에서는 접근할 수 없음
      // 코드블록 내에서 선언한 변수는 지역변수
      // but, 지역변수 외에서 선언한 글로벌 변수 let과 const는 어디에서든 사용 가능
      // var은 사용하지 않는게 좋음
      if (service == 1) {
        const service_result = "매우 만족";
        const tip = price * 0.15;
        document.getElementById("result").innerHTML =
          "- 음식값 : " +
          price +
          "원<br/>" +
          "- 서비스 만족도 : " +
          service_result +
          "<br/>" +
          "- 팁 : " +
          tip +
          "원";
      } else if (service == 2) {
        const service_result = "만족";
        const tip = price * 0.1;
        document.getElementById("result").innerHTML =
          "- 음식값 : " +
          price +
          "원<br/>" +
          "- 서비스 만족도 : " +
          service_result +
          "<br/>" +
          "- 팁 : " +
          tip +
          "원";
      } else {
        const service_result = "불만족";
        const tip = price * 0.05;
        document.getElementById("result").innerHTML =
          "- 음식값 : " +
          price +
          "원<br/>" +
          "- 서비스 만족도 : " +
          service_result +
          "<br/>" +
          "- 팁 : " +
          tip +
          "원";
      }
    </script>
  </body>

 

상수 apple 에 객체를 선언하게 되면 재할당은 불가능하지만

apple이라는 변수에 메모리 주소가 할당되어 있기 때문에

apple.name="orange"라는 식으로 접근하여 프로퍼티 값을 변경할 수 있음.

재할당이 불가능하여 apple에 다른 메모리 주소를 담을 수는 없지만, 매모리 주소가 가르키는 곳에 있는 object 변경은 가능.

 

const apple = {
  name: "apple",
  color: "red",
  display: "🍎",
};

console.log(apple); => { name: "apple", color: "red", display:"🍎" }

apple.name = "orange";
console.log(apple.name); => orange
728x90
반응형