From 8936d3b4c81eeb0b1b41a18200297a6eb3e997d9 Mon Sep 17 00:00:00 2001 From: HAE2NI Date: Sat, 4 Nov 2023 00:26:53 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[=20style=20]=20index.html=EC=97=90=20id=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/index.html b/index.html index d422693..70ac220 100644 --- a/index.html +++ b/index.html @@ -13,18 +13,18 @@

혜인이의 계산기

- - + - +

=

-

정답

+

정답

- +
From 780ee2c7319372182861f7d1b13e73fbceffbc2f Mon Sep 17 00:00:00 2001 From: HAE2NI Date: Sat, 4 Nov 2023 00:27:02 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[=20feat=20]=20calculator=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/main.ts b/src/main.ts index e69de29..465c90b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -0,0 +1,42 @@ +const $ = (selector: string) => + document.getElementById(selector) as HTMLElement; +const $$ = (selector: string) => document.querySelectorAll(selector); + +const firstNumber = $("first_number") as HTMLInputElement; +const secondNumber = $("second_number") as HTMLInputElement; +const resultBtn = $("result_button") as HTMLButtonElement; +const selector = $("selector") as HTMLSelectElement; +const resultHere = $("result") as HTMLHeadingElement; + +function calculator() { + const num1 = parseFloat(firstNumber?.value); + const num2 = parseFloat(secondNumber?.value); + const selectorOptions = selector.value; + + let result: number | string; + + switch (selectorOptions) { + case "sum": + result = num1 + num2; + break; + case "sub": + result = num1 - num2; + break; + case "mul": + result = num1 * num2; + break; + case "divide": + if (num2! == 0) { + result = num1 / num2; + } else { + result = "계산 불가"; + } + break; + default: + result = ""; + break; + } + resultHere.textContent = result.toString(); +} + +resultBtn.addEventListener("click", calculator); From 0201a7313dab330555471ebe4d60f54eae2831b4 Mon Sep 17 00:00:00 2001 From: HAE2NI Date: Sat, 4 Nov 2023 09:47:59 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[=20style=20]=20input=20type=3D"text"=20?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 70ac220..3f16ac3 100644 --- a/index.html +++ b/index.html @@ -13,14 +13,14 @@

혜인이의 계산기

- + - +

=

정답

From ac36bef1673c29bfaef050159dd7843ee2a2345c Mon Sep 17 00:00:00 2001 From: HAE2NI Date: Sat, 4 Nov 2023 09:48:24 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[=20feat=20]=20=EC=88=AB=EC=9E=90=EB=A5=BC?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=ED=95=98=EC=A7=80=20=EC=95=8A=EC=95=98?= =?UTF-8?q?=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20alert=20=EB=9C=A8=EB=8A=94=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index 465c90b..cc441e9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,5 @@ const $ = (selector: string) => document.getElementById(selector) as HTMLElement; -const $$ = (selector: string) => document.querySelectorAll(selector); const firstNumber = $("first_number") as HTMLInputElement; const secondNumber = $("second_number") as HTMLInputElement; @@ -8,6 +7,20 @@ const resultBtn = $("result_button") as HTMLButtonElement; const selector = $("selector") as HTMLSelectElement; const resultHere = $("result") as HTMLHeadingElement; +function blockString(inputDom: HTMLInputElement): void { + inputDom.addEventListener("input", (e) => { + const input = e.target as HTMLInputElement; + const changeToNum = input.value.replace(/[^0-9.]/g, ""); + if (input.value != changeToNum) { + alert("숫자입력하세요"); + input.value = ""; + } + }); +} + +blockString(firstNumber); +blockString(secondNumber); + function calculator() { const num1 = parseFloat(firstNumber?.value); const num2 = parseFloat(secondNumber?.value); @@ -26,7 +39,7 @@ function calculator() { result = num1 * num2; break; case "divide": - if (num2! == 0) { + if (num2 !== 0) { result = num1 / num2; } else { result = "계산 불가"; @@ -37,6 +50,8 @@ function calculator() { break; } resultHere.textContent = result.toString(); + firstNumber.value = ""; + secondNumber.value = ""; } resultBtn.addEventListener("click", calculator);