혜야의 코딩스토리

[JavaScript] 자바스크립트로 간단한 계산기 만들기 본문

꿈 : 멋진 개발자 🧸/JavaScript & jQuery

[JavaScript] 자바스크립트로 간단한 계산기 만들기

hyeya_ 2022. 6. 27. 19:48

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>myCalc</title>
<style type="text/css">
table {
 border-collapse: collapse;
 width: 300px;
 height: 500px;
 font-size: 20px;
}
td {
 padding: 5px;
 text-align: center;
 background: #ffe6f9;
}
.oper {
 background: #ffb3da;
}
.calc {
 background: #ff3399;
 color: white;
}
input {
 text-align: right;
 border: none;
 font-size: 20px;
}

</style>
<script type="text/javascript">
function add(char) {
	var display = document.getElementById("display");
	display.value += char;
}
function calc() {
	var display = document.getElementById("display");
	var result = eval(display.value);
	document.getElementById("result").value = result;
}
function reset() {
	document.getElementById("display").value = "";
	document.getElementById("result").value = "";
}
</script>
</head>

<body>
 <table border="1">
  <tr>
   <td colspan="4" style="background: white;"><input type="text" id="display"> </td>
  </tr>
  <tr>
   <td colspan="4" style="background: white;"><input type="text" id="result"> </td>
  </tr>
  <tr>
   <td colspan="3" onclick="reset()" class="oper">AC</td>
   <td onclick="add('/')" class="oper">/</td>
  </tr>
  <tr>
   <td onclick="add(7)">7</td>
   <td onclick="add(8)">8</td>
   <td onclick="add(9)">9</td>
   <td onclick="add('*')" class="oper">*</td>
  </tr>
  <tr>
   <td onclick="add(4)">4</td>
   <td onclick="add(5)">5</td>
   <td onclick="add(6)">6</td>
   <td onclick="add('-')" class="oper">-</td>
  </tr>
  <tr>
   <td onclick="add(1)">1</td>
   <td onclick="add(2)">2</td>
   <td onclick="add(3)">3</td>
   <td onclick="add('+')" class="oper">+</td>
  </tr>
  <tr>
   <td colspan="2" onclick="add(0)">0</td>
   <td onclick="add('.')">.</td>
   <td onclick="calc(7)" class="calc">=</td>
  </tr>
 </table>
</body>
</html>

1. HTML영역에서 <table>태그를 이용하여 계산기 틀을 먼저 만든다.

2. JavaScript에서 함수를 생성하고 onclick을 이용하여 해당 기능을 하는 함수와 연결해준다.

3. CSS에서 보기 좋게 스타일을 적용한다.

 

※eval(): 문자열 기호(" ")를 제거하여 실제 계산을 해주는 함수.
단, eval()은 해커의 공격대상이 될 수 있으므로 주요한 웹페이지에서는 안쓰는 게 좋다.

 

+다음번엔 eval()을 사용하지 않은 계산기를 만들어 봐야겠다.