TIL

dev-wholยท2021๋…„ 5์›” 17์ผ
0

โœ๐Ÿป calculator Advanced Challenges

const target = event.target; // ํด๋ฆญ๋œ HTML ์—˜๋ฆฌ๋จผํŠธ์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  const action = target.classList[0]; // ํด๋ฆญ๋œ HTML ์—˜๋ฆฌ๋จผํŠธ์— ํด๋ ˆ์Šค ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  const buttonContent = target.textContent; // ํด๋ฆญ๋œ HTML ์—˜๋ฆฌ๋จผํŠธ์˜ ํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  if (target.matches("button")) {
    if (action === "number") {
      // ์ฒซ๋ฒˆ์งธ ํ™”๋ฉด์˜ ์ˆซ์ž ์ž…๋ ฅ์ด ๋๋‚˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
      if (๋ฒ„ํŠผ์˜ ๊ฐ’ !== "operator") {
        // ํ™”๋ฉด์ด ์ดˆ๊ธฐ ์ƒํƒœ์ผ ๊ฒฝ์šฐ
        if (display.textContent === "0") {
          // ์ฒซ๋ฒˆ์งธ ์ˆ˜๋Š” ๋ฒ„ํŠผ ์ปจํ…์ธ 
          ์ฒซ๋ฒˆ์งธ ์ˆ˜ = buttonContent;
          // ํ™”๋ฉด์€ ์ฒซ๋ฒˆ์งธ ์ˆ˜;
          display.textContent = ์ฒซ๋ฒˆ์งธ ์ˆ˜;
        } else {
          // ์•„๋‹ ๊ฒฝ์šฐ ์ฒซ๋ฒˆ์งธ ์ˆ˜์˜ ๊ฐ’์ด ์žˆ๋Š” ์ƒํƒœ์ด๊ณ  ๊ทธ ์ƒํƒœ์—์„œ ๋ฒ„ํŠผ ์ปจํ…์ธ ์˜ ๊ฐ’๊ณผ ๋”ํ•ด์ค€ ๊ฐ’์„ ํ• ๋‹น
          ์ฒซ๋ฒˆ์งธ ์ˆ˜ = ์ฒซ๋ฒˆ์งธ ์ˆ˜ + buttonContent;
          // display๋Š” ๋”ํ•ด์ง„ ๊ฐ’์„ ๋‹ด์€ firstNum์„ ํ• ๋‹น
          display.textContent = ์ฒซ๋ฒˆ์งธ ์ˆ˜;
        }
      }
      // ์ฒซ๋ฒˆ์งธ ํ™”๋ฉด์˜ ์ˆซ์ž ์ž…๋ ฅ์ด ๋๋‚œ ๊ฒฝ์šฐ
      else if (๋ฒ„ํŠผ์˜ ๊ฐ’ === "operator") {
        // ๋‘๋ฒˆ์งธ ์ˆ˜์˜ ๊ฐ’์ด ์—†๋‹ค๋ฉด
        if (๋‘๋ฒˆ์งธ์ˆ˜ === undefined) {
          // ๋‘๋ฒˆ์งธ ์ˆ˜๋Š” ๋ฒ„ํŠผ ์ปจํ…์ธ 
          ๋‘๋ฒˆ์งธ์ˆ˜ = buttonContent;
          // display๋Š” ๋‘๋ฒˆ์งธ ์ˆ˜
          display.textContent = ๋‘๋ฒˆ์งธ ์ˆ˜;
        } else {
          ๋‘๋ฒˆ์งธ ์ˆ˜ = ๋‘๋ฒˆ์งธ ์ˆ˜ + buttonContent;
          display.textContent = ๋‘๋ฒˆ์งธ ์ˆ˜;
        }
      }
    }

0๊ฐœ์˜ ๋Œ“๊ธ€