11. 조건문 예고
프로그래밍 언어를 이용하면 조건에 따라 다른 순서로 기능을 실행할 수 있다.
조건문을 이용하면 이전에 만들었던 day & night
버튼을 1개의 버튼으로 합칠 수 있다.
12. 비교 연산자와 Boolean 데이터 타입
두 개의 값을 비교할 수 있은 연산자가 있다. 이를 비교 연산자라고 한다.
a === b
는 a
와 b
가 같은 값인지 비교한다.
a
와b
가 같으면true
를 반환한다. (e.g1 === 1
)a
와b
가 다르면false
를 반환한다. (e.g1 === 2
)
a < b
는 a
가 b
보다 작은 값인지 비교한다.
a
가b
보다 작으면true
를 반환한다. (e.g1 < 2
)a
가b
보다 작지 않으면false
를 반환한다. (e.g2 < 1
)
이처럼 반환 값으로 true
혹은 false
둘 중 하나를 반환하는 data type을 Boolean이라고 한다.
13. 조건문
조건문은 boolean값에 따라 코드가 다르게 실행된다.
/* 1, 2가 출력 */
document.write('1 <br>')
if (true) {
document.write('2 <br>')
}
else {
document.write('3 <br>')
}
/* 1, 3이 출력 */
document.write('1 <br>')
if (false) {
document.write('2 <br>')
}
else {
document.write('3 <br>')
}
1
은 조건에 들어있지 않으므로 조건에 상관없이 항상 출력된다.- 조건이
true
일 경우 조건에 nesting 되어있는 코드가 실행된다. - 조건이
false
인 경우 else에 nesting 되어있는 코드가 실행된다.
14. 조건문의 활용
조건문을 이용해서 day & night
버튼을 1개의 버튼으로 합칠 수 있다.
<!-- night 버튼 -->
<input type = "button" value = "night" onclick = "
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
">
<!-- day 버튼 -->
<input type = "button" value = "day" onclick = "
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
">
위의 두 버튼을 조건문을 이용해서 하나로 합치기 위해서는 다음 두 가지를 해주어야한다.
- 버튼의
value
을 이용해서night
조건을 만든다. (day
는night
의else
로 처리) - 조건문을 이용해서
day
일 때 코드와night
일 때 코드를 한 번에 작성한다.
조건을 명확히 기재하기 위해서는 버튼의 value
를 알아야한다: console에서 .value
를 이용해 알아낼 수 있다.
<!-- 버튼을 보다 쉽게 가리키기 위해 html파일의 버튼에 id값을 추가 -->
<input id = "night_day" type = "button" value = "night" onclick = "">
/* id 값을 night_day로 갖는 요소의 value값을 반환: 'night' */
document.querySelector('#night_day').value
버튼의 value
가 night
이므로 이를 이용해서 조건을 작성한다.
/* 문서의 night_day id를 갖는 요소 (버튼)의 value가 night일 경우 */
/* night 버튼을 클릭 할 경우 */
if (document.querySelector('#night_day').value === night) {
/* 웹 페이지 테마를 night으로 바꾼다 */
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
}
/* 그 외: day 버튼을 클릭 할 경우 */
else {
/* 웹 페이지 테마를 day로 바꾼다 */
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
}
이 경우 웹 페이지 테마가 night
으로 바뀌었더라도 버튼의 value
는 항상 night
이기 때문에 day
테마로 바꿀 수 없다.
이를 해결하기 위해서는 웹 페이지의 테마를 night
으로 바꾸면 value
값을 night
이 아닌 값으로 바꿔줘야한다.
물론 반대로 day
테마로 바꿀 때 value
를 night
으로 바꾸는 코드도 같이 작성해줘야한다.
/* night 버튼을 클릭 할 경우 */
if (document.querySelector('#night_day').value === night) {
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
/* night_day id를 갖는 요소의 value를 day로 바꿈 */
document.querySelector('#night_day').value = 'day'
}
/* 그 외: day 버튼을 클릭 할 경우 */
else {
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
document.querySelector('#night_day').value = 'night'
'공부를 합니다 > 언어 (Language)' 카테고리의 다른 글
WEB2 - JavaScript_15 리팩토링(Refactoring) (0) | 2020.05.04 |
---|---|
Language_Navigator (0) | 2020.05.01 |
WEB2 - JavaScript_10 프로그램, 프로그래밍, 프로그래머 (0) | 2020.05.01 |
WEB2 - JavaScript_7-9 웹 브라우저 제어 (0) | 2020.05.01 |
WEB2 - JavaScript_5-6 데이터 타입, 변수와 대입연산자 (0) | 2020.05.01 |