조건부 연산자는
불 표현식 ? 참일때의 결과 : 거짓일때의 결과
로 쓰인다.
이렇게 쓰고, prompt()
를 써서 나오는 입력상자에 1을 입력하면
불 표현식
에 맞는 참 이므로 참일때의 결과인 '0 이상의 숫자입니다'가 alert()를 써서 나오는 경고 대화 상자가 나올것이고,
-1을 입력하면 '0보다 작은 숫자입니다'가 나온다.
거짓일때의 결과값은 0이상인 숫자 말고는 전부다 거짓일때의 결과가 출력된다. 문자열을 입력해도 불 표현식
에 거짓 이므로 거짓일때의 값이 출력됨.
짧은 조건문
의 특징은 논리 연산자의 특성을 조건문으로 사용하는 것이다.
논리 연산자 - 논리합 연산자 , 논리곱 연산자 에 대해 알아야한다.
표현식을 살펴보자.
true || OOO
다음 논리합 연산자를 사용한 표현식은 뒤에 'OOO'에 어떠한 값이 들어가도 항상 true이다.
자바스크립트는 이처럼 참(true)이 확실할 때 추가 연산을 진행하지 않는다.
즉, 논리합 연산자의 좌변이 참이면 우변을 실행하지 않는다!
이 코드의 첫문장 true || console.log('실행될까') 는 논리합 연산자로 좌변이 true(참)이므로 우변은 실행되지않는다.
두번째 문장도 논리합 연산자로 좌변이 false(거짓)이므로 우변까지 실행되므로 콘솔창에 '실행될까?'가 출력된다.
논리곱 연산자는 양변이 모두 참일 때만 참이기 때문에 다음 표현식은 항상 거짓(false)이다.
false && OOO
따라서 논리곱 연산자는 좌변이 거짓이면 우변을 실행하지 않는다.
즉,
결과가 거짓인 불 표현식 && 불 표현식이 참일 때 실행할 문장
이렇게 썻을때 콘솔창에 출력되는 값은 '실행1'만 출력된다.
논리곱연산자는 둘다 참일때만 참이기 때문에 좌변이 거짓(false)이면
우변을 실행하지 않는다는걸 알아두자!