간이계산기 ver 4

oYJo·2024년 12월 27일

JavaScript

목록 보기
8/52
post-thumbnail

간이계산기 만들기 4

전체코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>실습문제1</title>
</head>
<body>

    <h1>간이계산기 만들기</h1>

    첫번째 값: <input type="text" id="num1"> <br>
    두번째 값: <input type="text" id="num2"> <br>

    <!-- 
        함수 호출 시 매개변수 this
        -> 이벤트가 발생한 요소 자체를 의미한다.
        (여기서는 클릭된 연산자 버튼을 의미)
     -->
    
    <button onclick="calculate(this)">+</button>
    <button onclick="calculate(this)">-</button>
    <button onclick="calculate(this)">*</button>
    <button onclick="calculate(this)">/</button>
    <button onclick="calculate(this)">%</button>
    
    <br><br>

    계산결과: <span id="result"></span>
    
    <script>
        function calculate(btn){
            // btn에는 클릭된 this(클릭된 버튼 요소)가 전달되어짐
            // console.log(btn);

            const op = btn.innerText; // 버튼의 내용(+, -, *, /, %)를 얻어옴
            
            // input에 입력된 값을 얻어와 바로 number타입으로 변환
            const num1 = Number(document.getElementById("num1").value);
            const num2 = Number(document.getElementById("num2").value);

            // eval("코드 형식 문자열")
            // -> 작성된 문자열을 JS 코드로 해석
            // -> 속도 + 보안 이슈가 있어서 사용 지양


            // span 태그에 결과 출력
            // document.getElementById("result").innerHTML=eval(num1 + op + num2);
            document.getElementById("result").innerHTML= new Function("return " + num1 + op + num2)();

        }
       
    </script>



</body>
</html>

profile
Hello! My Name is oYJo

0개의 댓글