본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[JS] 타입 강제변환의 사례

by 열공노년 2024. 4. 15.
반응형

타입 강제변환의 사례

다음 JavaScript 코드는 배열 arr에 있는 각 요소에 대해 반복을 수행하며, console.log를 이용해 배열의 요소를 출력하려고 시도합니다. 그러나 console.log 호출 부분이 조건문 안에 있고, 조건문의 논리가 올바르지 않습니다.

강제변환 사례

 

강제변환 과정

조건문 arr.length && arr[i] < 500은 배열의 길이가 0이 아닌 경우 true가 되고, 그 후에 arr[i] < 500의 평가가 이루어집니다. arr[i] < 500 부분에서는 arr의 i번째 요소가 500보다 작은지 비교합니다. 배열의 요소들은 문자열이고, 비교는 암시적 타입 변환을 통해 수행됩니다. 문자열과 숫자를 비교할 때, 문자열은 먼저 숫자로 변환되고 나서 비교가 이루어집니다. 그러므로 '1' < 500, '10' < 500, '100' < 500 은 모두 true가 됩니다. 하지만 '1000' < 500false이므로, 마지막 요소는 출력되지 않습니다.

 

실행 결과를 보면, 첫 번째 세 요소 '1', '10', '100'은 500보다 작다고 평가되어 콘솔에 출력되고, 마지막 요소 '1000'은 500보다 크므로 출력되지 않습니다.

 

코드를 의도대로 모든 요소를 출력하려면 조건문을 삭제하면 됩니다:

var arr = ['1', '10', '100', '1000'];

for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]); // 모든 요소를 출력합니다.
}

올바르게 수정된 코드

 

코드를 수정해서 올바르게 작동된 결과입니다.

반응형