티스토리 뷰

TIP 1. const로 변하지 않는 값을 표현하라

* const는 코드를 읽기 쉽게 만드는 제약사항을 가진다.

- 블록의 문맥 내에서 재할당할 수 없는 변수 선언

- 의미: 값을 할당하고 변경하지 않겠다.

 

예시1)

const taxRate = 0.1;
const total = 100 + (100 * taxRate);
	return `구매 금액은 ${total}입니다.`;

=> 구매 금액으로 반환되는 값을 정확히 알 수 있다. total은 상수이며 재할당 할 수 없다는 것을 알 수 있기 때문이다.

 

예시2)

const discountable = [];
for (let i=0; i<cart.length; i++) {
	if (cart[i].discountAvailable) {
 		discountable.push(cart[i]);   
    }
}

=> 변수를 재할당 할 수는 없지만 값은 바꿀 수 있다. const로 배열을 선언하였지만 여전히 배열 항목을 추가할 수 있다.

질문점) 예제를 조작(mutation)하는 것을 피하라는 것의 의미는 무엇인가.

const discountable = cart.filter(item => item.discountAvailable);

 

TIP 2. let과 const로 유효 범위 충돌을 줄여라

* let은 재할당 할 수 있고 블록 유효 범위를 따른다. (if/for)

예시1)

function getLowestPrice(item) {
    var count = item.inventory;
    var price = item.price;
    
    if (item.salePrice) {
    	var count = item.saleInventory;
        if (count>0) {
        	price = item.salePrice;
        }
    }
    if (count) {
    	return price;
    }
    
    return 0;
}

//item 정보
const item = {
    inventory: 0,
    price: 3,
    salePrice: 0,
    saleInventory: 0,
};

=> 할인 중이 아니고, 재고도 없으면 0을 반환한다.

=> 할인 상품 재고가 없기 때문에 count에 0이 할당되고, 재고에 오류가 발생한다. 정상 상품 재고와 할인 상품 재고를 var로 선언하여 사용하였기 때문에 잘못된 값을 반환하게 된다.

=> let으로 선언하면 블록 내부 선언 변수는 블록 외부에 존재하지 않게 된다.

 

* 마지막

- let과 const는 같은 이름의 변수를 다시 선언할 수 없다. 변수 이름 재사용 시 문제를 막을 수 있다.

'JS' 카테고리의 다른 글

2장 배열로 데이터 컬렉션을 관리하라  (2) 2023.10.28
1장 변수 할당으로 의도를 표현하라  (0) 2023.10.21
JS - splice()  (1) 2023.08.04
split(), map(), 람다식  (1) 2023.07.06
JS - 브라우저 객체 모델  (0) 2023.06.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함