JavaScript

JS | ES6 문법 - let 변수, const 변수

개발 공부 2023. 1. 12. 16:01

let과 const 

let 변수 - 자바와 같음

1. let 변수는 중복선언이 🔥불가능X 하다.

2. let 변수의 유효범위는 {} 중괄호 블록이다.

 

var 변수는 함수 스코프 (함수 범위에서까지 유효)

let 변수는 중괄호 스코프 (중괄호 범위에서까지 유효)

 

<ul class = "list">
    <li>목록1</li>
    <li>목록2</li>
    <li>목록3</li>
    <li>목록4</li>
</ul>

 

var 변수는 함수 스코프이기때문에 계속 4가 출력됨

for(var i = 0; i < lis.length; i++){
                lis[i].onclick = function(){
                console.log(i); //4
                }
        }

for(var i = 0; i < lis.length; i++){
   (function(x){
        lis[x].onclick = function(){
        console.log(x); //4
           }
    })(i);
}

let 변수는 중괄호 스코프이기 때문에 중괄호 안에서 유효하다.

for(let i = 0; i < lis.length; i++){
                lis[i].onclick = function(){
                console.log(i);
                }
        }

 

 

 

const 변수 - 상수(완전한 상수는 아니지만 비슷한 규칙을 갖고있다.)

1. 중복 선언 x

2. 선언 후 값을 변경하는게 불가능X하다.

3. 배열을 통째로 바꾸는 것은 불가능X 하지만,

    기존 배열의 값을 바꾸거나 추가하는것은 가능O(요소변경가능)하다.

4. 객체에서도 통째로 바꾸는 것을 불가능X 하고,

    값을 변경하는 것은 가능O하다.

 

const 변수는 수정이 가능하기 때문에 js에서 자주 사용해도 된다.

//값이 변경되지 않음
const gender = "여자";
// gender = "남자"; //변수의 값을 변경하는 것 불가

const arr = [1,2,3];
// arr = [1]; //배열을 통째로 변경하는 것은 불가하지만
//배열안의 값을 변경하거나 추가하거나 뺴거나하는것은 가능하다.
arr[0] = 10;
arr.push(4);

console.log(arr);   

const obj = {name : "홍길동"};
// obj = {name : "이순신"}; //객체를 통째로 변경하는 것은 불가

//값을 변경하는 것은 가능하다.
obj["name"] = "이순신"; 
obj["age"] = 10;
console.log(obj);

//js에서 const를 자주 사용해도 된다.(추구함)
//고정배열과 리스트 다루는 것을 따로 공부하면 좋음!