Page 12 -
P. 12

가장 좋은 것은 할당이 변경되지 않는다는 점을 알 수 있는 경우입니다. 두 번
                  째로 좋은 것은 변경될 수도 있다는 점을 알 수 있는 경우입니다. const를 자주
                  사용하고 let은 드물게 사용하면 변경되는 부분을 예측할 수 있습니다.

                  모든 변수 할당을 변경되지 않는다는 사실을 알 수 있는 것과 변경될 수도 있
                  다는 사실을 알 수 있는 것으로 나눠봅시다.

                  자, const를 사용할 때 중요한 고려 사항이 하나 있습니다. const에 할당된 값
                  이 불변값이 되지는 않는다는 것입니다. 즉, 변수를 재할당할 수는 없지만, 값

                  을 바꿀 수는 있습니다. 모순되는 말처럼 들리겠지만 다음 사례를 보세요.

                   variables/const/const.js
                   const discountable = [];
                   // 코드를 몇 행 건너뛰었습니다.
                   for (let i = 0; i < cart.length; i++) {
                     if (cart[i].discountAvailable) {
                       discountable.push(cart[i]);
                     }
                   }


                  완벽하게 유효한 코드입니다. discountable을 const로 선언했지만 여전히 배
                  열에 항목을 추가할 수 있습니다. 이러한 특성은 앞서 살펴봤던 것과 같은 문제

                  를 만들어냅니다. 코드의 뒷부분에서 어떤 값을 보게 될지 확신할 수 없습니다.
                  객체, 배열, 또는 다른 형태의 컬렉션에 대해서는 좀 더 까다롭게 살펴봐야 합
                  니다.

                  무엇을 사용해야 할지 정해진 것은 없지만, 될 수 있으면 조작(mutation)을 피하
                  는 것이 최선입니다.

                  위에서 살펴본 예제를 조작하지 않고 작성하면 다음과 같습니다.


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






                                                             1장  변수 할당으로 의도를 표현하라  025




     코딩의기술_자바_07.indd   25                                                2019-12-13   오전 10:27:02
   7   8   9   10   11   12   13   14   15   16   17