728x90
if (value == 0) break;
== (equal) : 피연산자들의 값만 비교.
단, 숫자형태의 문자열은 다른 숫자 타입의 값과 비교시 숫자 타입으로 형변환되어 비교.
따라서 입력된 문자열 '0'과 '확인'
버튼을 눌렀을 때 반환되는 빈 문자열 ('')은 모두 숫자 0으로 변환되어 비교.
단,원시값 중 빈 문자열('')과 false 만 추상 동등 비교(==) 시 0 으로 변환되어 평가.
숫자 형태의 문자열과 숫자 형태가 아닌 모든 문자열은 복합 대입 연산자에 의해 문자열 결합 연산 처리되는 것을 확인 가능.
=== (strict equal) : 피연산자들의 값뿐만 아니라, 타입까지 포함하여 비교.
따라서 이 때에는 숫자 형태의 문자열이더라도 다른 숫자 타입과 비교시 형변환이 되지 않아 무한루프 탈출 불가.
입력된 값이 0 이나
입력없이 '확인' 반환되는 빈 문자열 ('')
또는 null일 때( '취소' 버튼을 눌렀을 때 )의 무한루프 탈출 처리를 위한 부정(!) 평가.
입력된 값이 숫자 형태가 아닌 문자열인 경우에도 부호 연산자(+)에 의해 NaN값 반환.
js에서는 논리 평가시 0, null, '', NaN, undefined 등의 값들을 false 값으로 평가.
let sum = 0;
while (true) {
let value = +prompt("숫자를 입력하세요.");
if (!value) break;
sum += value;
}
alert('합계: ' + sum);
빈문자열, 또는 취소버튼(null)을 걸러내기 위한 부정평가(!) 사용 예시
추후에 공백문자열도 걸러내야하는 상황이 올 수 있고, 문자열인지 숫자인지 걸러야하는 상황이 올 수 있음.
걸러내기 위한 요소로 잘 알아두자.
'Developer > 자바스크립트' 카테고리의 다른 글
자바스크립트 , 문자열 관련 배열 / for..of / forEach , ...사용 / 구조분해할당 / toString, delete, value 메서드 (0) | 2024.05.30 |
---|---|
예제로 만나보는 자바스크립트 (0) | 2024.05.30 |
자바스크립트 , 누적합구하기/ 최대값,최소값구하기 /거듭제곱구하기 원리 (0) | 2024.05.16 |
자바스크립트의 반복문(for / while / do..while) (0) | 2024.05.16 |
자바스크립트 , 조건문 if 와 switch (0) | 2024.05.16 |