JavaScript

[JavaScript] 생활코딩 12~18 _ 제어 태그 선택, 비교연산자, 불리언, 조건문, 리팩토링

보라해바라기 2021. 7. 13. 15:38
SMALL

안녕하세요~ 보라해바라기입니다.

 

어제에 이어서 계속 날씨 얘기를 하게 되는데.. 

 

어제 저희 학교에 심겨진 나무가 부러졌다는 이야기가 있더라구요...!!

 

제가 날씨 얘기를 또 하게 되는건 날씨가 제게 주는 임팩트가 커서 그런 것 같아요... ㅎㅎ

 

오늘은 내용이 꽤 많아서 얼른 시작해야겠어요~

 

오늘도 렛츠 기릿!!

 


 

1. 제어할 태그 선택하기

저번 시간에 input을 이용해서 버튼과 그 이름을 설정하고 다양한 event를 실행해보았답니다!

 

이번에는 night 버튼과 day 버튼을 각각 생성해서 

 

버튼을 클릭했을 때, 배경과 글씨 색이 바뀔 수 있도록 설정해볼게요~

 

  <input type="button" value="night" onclick="
    document.querySelector('body').style.backgroundColor='black';
    document.querySelector('body').style.color='ivory';
  ">

night 버튼을 눌렀을 때


  <input type="button" value="day" onclick="
  document.querySelector('body').style.backgroundColor='ivory';
  document.querySelector('body').style.color='black';
  ">

day 버튼을 눌렀을 때

 

2. 비교연산자와 불리언

비교연산자=== 로 나타내며 좌항과 우항이 같은가를 비교하는 연산자랍니다~

 

예시를 살펴보면

 

<h1>Comparison Operator & Boolean</h1>
    <h2>===</h2>
    <h3>1===1</h3>
    <script>
      document.write(1===1);  => 좌항과 우항이 같나? 같으면 true, 다르면 false 출력
    </script>

    <h3>1===2</h3>
    <script>
      document.write(1===2);  => 좌항과 우항이 같나? 같으면 true, 다르면 false 출력
    </script>

    <h3>1&lt;2</h3> => '<'를 나타내기 위해서 &lt 사용
    <script>
      document.write(1<2);  => 좌항이 우항보다 작은가? 좌항이 작으면 true, 그렇지 않으면 false 출력
    </script>

 

 

여기서 출력하게되는 true, false를 합하여 Boolean(불리언)이라는 자료형으로 부른답니다~

 

 

3.  조건문

 

조건문은 하나의 프로그램이 조건에 따라 다른 순서의 기능을 실행하는 역할을 합니다!

 

앞서 만든 주/야간모드에서 디벨롭하여

 

하나의 버튼만을 이용해 깜깜할 때, 버튼을 클릭하면 밝은 상태로 만들어주고 그 반대도 구현해볼거예요~

 

이는 토글을 이용해서 구현할 수 있는데요!

 

그 전에 알아야할 것이 바로 조건문입니다~

 

예시를 살펴볼게요!

 

<h2>IF-true</h2>
      <script>
        document.write("1<br>");
        if(true) {
          document.write("2<br>");
        } else {
          document.write("3<br>");
        }
        document.write("4<br>");
      </script>

      <h2>IF-false</h2>
      <script>
        document.write("1<br>");
        if(false) {
          document.write("2<br>");
        } else {
          document.write("3<br>");
        }
        document.write("4<br>");
      </script>

 

실행 결과

 

조건문을 활용하여 우리가 앞서 해보고자 한 기능을 구현할 수 있어요!

 

<input id="night_day" type="button" value="night" onclick="
  if(document.querySelector('#night_day').value === 'night'){
    document.querySelector('body').style.backgroundColor = 'black';
    document.querySelector('body').style.color = 'ivory';
    document.querySelector('#night_day').value = 'day';
  } else {
    document.querySelector('body').style.backgroundColor = 'ivory';
    document.querySelector('body').style.color = 'black';
    document.querySelector('#night_day').value = 'night';
  }
">

 

만약 웹페이지가 night 상태라면 배경 색을 아이보리색, 글씨 색을 검정색으로 설정하고 day상태로 바꾸어라!

 

그렇지 않으면 (웹페이지가 day 상태라면) 배경 색을 검정색, 글씨 색을 아이보리색으로 설정하고 night상태로 바꾸어라!

 

는 의미로 간단하게 해석이 가능하답니다^_^

 

day상태일 때
night상태일 때

 

4. 리팩토링 중복의 제거

 

리팩토링이란 코드의 가독성을 높이고 유지보수를 편하게 하며 중복을 최소한하는 쪽으로 코드를 개선하는 방식입니다.

 

event안에서 작동하는 코드들, 

 

예시에서는 input 태그를 가리키도록 하는 특별한 키워드를 사용하여 중복을 최소화할 수 있는데요!

 

바로 this라는 키워드를 통해서입니다. 

 

document.querySelector('#night_day')this로 통일시켜주고

 

document.querySelector('body')target 변수에 대입하여

 

조건문을 target으로 통일시켜주면 코드의 길이를 줄이면서 더 효율적인 프로그래밍이 가능하답니다~

 

완성된 코드는 다음과 같답니다~

 

  <input type="button" value="night" onclick="
    var target = document.querySelector('body');
    if(this.value === 'night'){
      target.style.backgroundColor = 'black';
      target.style.color = 'ivory';
      this.value = 'day';
    } else {
      target.style.backgroundColor = 'ivory';
      target.style.color = 'black';
      this.value = 'night';
    }
  ">

 


오늘 JS를 배우면서 또 느낀 점은

 

웹페이지를 만드는데 중요한 목적은 이를 사용하는 "사람"에게 

 

최대한 편리함을 제공해야 한다는 점임을 다시금 깨달았답니다!

 

주/야간모드를 구현해보니까 평소에 내가 쓰던 당연한 기능들도

 

구현하는게 쉽지 않구나하는 생각을 가지며 코딩을 했던 것 같아요 ㅎㅎ

 

앞으로도 열심히 공부해서 사람들이 생각하지 못한 웹페이지의 불편한 점을 

 

직접 생각하고 이를 해결할 수 있는 코드를 짜보는 것을 목표로 해야겠어요!!!!

 

오늘도 수고하셨고 내일 또 만나요~

 

 

728x90