본문 바로가기
공부기록/JavaScript

3월 7일 (2) JavaScript - 변수3, 제어문, 연산자

by project100 2023. 3. 7.

2. html의 input 요소 활용

HTML 요소를 선택하여 제어하기(변수에 요소 넣기)

DOM (Document Object Model) 활용하기

HTML 요소를 제어하기 위한 (자바스크립트) 객체(실체화된 것) 모델

Document Object  : 문서 객체

HTML 요소 = 문서 객체

 

참고) 요소의 식별이나 분류에 사용하는 속성 - class, id

요소의 이름(태그명) <- 요소를 선택하는 데 사용가능

class - 분류

id - 식별 

 

요소를 선택하는 방법

1. 요소의 id 속성을 사용하는 방법

문형) document.getElementbyId("id 속성값"); 

 

특정 html 요소에 출력하기 

1) innerHTML : 요소의 내부(컨텐츠)에 출력,

태그 작성 시 태그를 하위 요소로 처리

2) innerText : 요소의 내부에 출력, 태그 작성 시 태그를 글자로 그냥 출력

 

둘 다 기존의 내용을 지우고 출력(덮어쓴다.)

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>요소 제어하기</title>
</head>
<body>
    <button id="btn">버튼</button>
    <p id="para1">여기에 다른 문장이 나올까요?</p>
    <p id="para2">여기에 다른 문장이 나올까요?</p>

</body>
<script>
    // 버튼을 순수하게 자바스크립트만으로 제어하자
    var btns = document.getElementById("btn");
    console.log(btns);
    btns.innerHTML = "<h2>BUTTON</h2>";

    var pa1 = document.getElementById("para1");
    console.log(pa1);
    pa1.innerHTML = "<h2>다음 문장을 입력합니다.</h2>"; //태그를 사용하여 보여준다.
    
    var pa2 = document.getElementById("para2");
    pa2.innerText = "<h2>다음 문장을 입력합니다.</h2>"; //태그를 text형식으로 보여준다. 

</script>
</html>

버튼 이벤트(클릭) 처리 (Event Handling)

1. html 태그의 onclick 속성을 사용

2. addEventListner를 사용

 

  var btns = document.getElementById("btn");
    console.log(btns);
    btns.innerHTML = "<h2>BUTTON</h2>";
    btns.addEventListener("click", function(){
        alert("버튼 눌림");
    });
 
 
나이계산기2 만들기
입력은 input태그로, 출력은 innerHTML
+ 조건에 따라 스타일을 변경.
 
<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>나이계산기2</title>
</head>

<body>
    태어난 연도 : <input id="in_year" type="text" value="YYYY"> <br><br>
    <!-- value는 보이지 않을 뿐 존재하는 태그 사용자가 입력한 값으로 덮어 씌여진다. -->
    <button id="btn">계산</button>
    <p id="result"></p>

</body>
<script>
    var cuYear = 2023; //현재 년도 지정
    var bYear; //태어난 년도 변수선언
    var age; //나이 변수 선언

    //요소를 저장할 변수
    var inYear = document.getElementById("in_year"); // input 태그  
    var b = document.getElementById("btn"); // 계산
    var res = document.getElementById("result"); //결과

    b.addEventListener("click", function () {
        bYear = inYear.value; //input 태그의 입력 값을 가지고 와서 bYear에 대입(저장)
        console.log(bYear);//입력값 확인

        age = cuYear - bYear + 1; //나이계산
        console.log(age);  //나이계산값 확인

        //계산 결과를 지정위치(요소)에 출력
        res.innerHTML = bYear + "년에 태어난 사람의 나이는 " + age
            + "세입니다.";

        //스타일을 바꿔보자. 나이별로 글자색을 변경
        //성녀과 미성년 구분(19 이상과 이하)
        if (age > 18) {
            //글자 색을 파란색
            res.style.color = "blue";
            res.style.backgroundColor = "yellow";
            //background-color를 카멜케이스로 변경
            res.style.border = "2px solid green";
        }
        else {
            //글자 색을 빨간색
            res.style.color = "red";
            res.style.backgroundColor = "black";
        }
    });
</script>

</html>

오타가 나면 다음 것에 영향을 미친다. 빼먹은 부분 없는지 잘 확인하기.

 

제어문

1. 분기 제어문 if : 만약에... 라면 ~해라. 아니면 하지 마라.

문법 1) if(조건식) {

               A 작업 코드 

}

조건식이 참(true)이라면 A 작업 코드를 실행하고, 거짓 (false)이라면 실행하지 마라.

 

조건식에 올 수 있는 것들 :

1) boolean 형태의 변수 한다/안한다

2)  true/false로 결과가 나오는 비교식

3) true 또는 false 값 자체 쓸 수는 있으나 사용하지는 않는다.

 

문법 2)

if(조건식) {

A 작업코드들;

}

else {

B 작업코드들;

}

 

조건식이 true일 경우 A 작업 코드들을, false일 경우 B 작업 코드들을 선택적으로 실행한다.

 

 

연산자 (컴퓨터의 궁극적인 목표 -> 연산) p475

1. 산술연산자 - 수학 계산을 할 때 사용하는 연산자

+ , - , * ,  /

% : 나머지를 취하는 나누기 연산

    나눗셈 공식 : a와 b가 자연수 일 때, a = bq = r

    q(quotient)는 몫, r(remainder)은 나머지

    참고) 0으로 나눌 수는 없다.(무한대의 값이 나온다.)

             나눗셈의 결과는 실수 ( 5 / 2 = 2.5) 피연산자 연산자/ 피연산자 이항연산자

예 ) 사이클 순환 달력 7칸, 암호화

 

증감 연산자

++ : 증가 연산자, 단항 연산자, 피연산자를 1 증가시킨다.

- - : 감소 연산자, 단항 연산자, 피연산자를 1 감소시킨다.

 

증감 연산자의 위치에 따른 차이점

전위형 : 피연산자 앞에 연산자가 오는 경우

후위형 : 피연산자 뒤에 연산자가 오는 경우

 

 

2. 할당연산자(a.k.a 대입 연산자) 

    산술 연산자 + '='인 형태 (증감 연산자 제외)

    = , +=, -=, *=, /=, %=

 

3. 연결연산자

     + : 문자열 간의 연결, 문자열과 숫자형의 연결 등, 하나의 문자열로 만듦, 출력 시 많이 사용

 

4. 비교연산자(두 피연산자를 비교하는 연산자)

결괏값이 논리값으로 나온다(True/False) 2, 4는 자바에는 없는 연산자

 == : 두 피연산자가 값이 같은가를 비교하는 연산자, =는 대입  같은면 True

 === : 두 피연산자의 값과 자료형이 같은가? 같은면 True

 != : 두 피연산자가 값이 같지 않은가를 비교하는 연산자 같지 않으면 True

 !== : 두 피연산자의 값이나 자료형이 다른가? 같지 않으면 True

 < : 

 <= :

 >  :

 >= :

 

5. 논리연산자

 

간단한 계산기

두 수를 입력(<input>) 받아서 덧셈 결과를 <p>에 출력하는 예

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>간단한 계산기 만들기</title>
</head>
<body>
    <input id="firstnum" type="number"> +
    <input id="secondnum" type="number"><br><br>
    <button id="btn">계산</button><br>
    <p id="result"></p>
    
</body>
<script>
    var firNo; // 첫번째 변수 선언
    var secNo; // 두번째 변수 선언
    var res; // 결과값 변수 선언


    var firNo = document.getElementById("firstnum"); //input 1 연결
    var secNo = document.getElementById("secondnum"); //input 2 연결
    var b = document.getElementById("btn"); // 버튼 연결
    var res = document.getElementById("result"); //p 태그 연결

    // 버튼을 클릭 했을 때 함수값 가지고 오기
    b.addEventListener("click", function(){
    fir = Number(firNo.value); // 첫번째 값 출력
    console.log(firNo); // 첫번째 값 출력 확인
    sec = Number(secNo.value); // 두번째 값 출력
    console.log(secNo); // 두번째 값 출력 확인
    re = fir + sec; // 첫번째 값 + 두번째 값 출력
    console.log(re); // 첫번째 값 + 두번째 값 출력 확인

    res.innerHTML = "두 값의 합은 " + re + "입니다.";
    //결과 값 화면에 출력 

    })

</script>
</html>

변수 선언한 공간과 연결하는 곳, 실제로 출력하는 함수의 이름이

모두 다를 수 있으니 헷갈리지 않게 잘 연결하는 것이 필요하고 여러 번 반복해서 연습하자!

오타 주의, 세미콜론 꼭 작성하기