์ด๋ฒ ์๊ฐ์๋ ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํด ๋ณด์๋ค.
์ด 3๋จ๊ณ ๊น์ง ์ด๋ฃจ์ด์ ธ ์๊ณ ๋จ๊ณ๊ฐ ์ฌ๋ผ๊ฐ ์๋ก ์ด๋ ค์ ์ก๋ค.
1๋จ๊ณ๋ง ํด๋ ๊ณผ์ ์ ์ถ ํ ์ ์์๋ค.
๊ทธ๋๋ ๋ด๊ฐ ํ ์ ์๋ ๋จ๊ณ ๋งํผ ๋์ ํด ๋ณด์๋ค.
์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค...
0 + 0 = 0
0 + 0 = 0
ํ๋ฉด์ด ํ์ ๋์ด ์์ ๋
์ฒซ๋ฒ์งธ ์๋ฆฌ, ์ฐ์ฐ๊ธฐํธ, ๋๋ฒ์งธ ์๋ฆฌ์ textContent
๋ฅผ ์ด์ฉํด ์ถ๊ฐํด ์ฃผ์๋ค.
๊ฒฐ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ํจ์๋ฅผ ์ ์ธํด ์์ ํ๋ค.
Number
๊ฐ ์๋ String
์ผ๋ก ์ธ์์ด ๋ผ ์กฐ๊ฑด๋ฌธ์ผ๋ก ์ฐ์ฐ ๊ธฐํธ๊ฐ -
,+
,/
,*
์ผ ๊ฒฝ์ฐ ๊ฐ ๊ธฐํธ์ ๋ง๊ฒ ์์
ํ๋ค.//์กฐ๊ฑด๋ฌธ ์์
if (operator === '+') {
result = Number(n1) + Number(n2);
} else if (operator === '-') {
result = Number(n1) - Number(n2);
} ...(์๋ต)
textContent
๋ String
์ผ๋ก ์ถ๋ ฅ๋๊ธฐ ๋๋ฌธ์ Number()
๋ฅผ ๊ฐ์ธ ์ฃผ์๋ค.String(result);
String
์ผ๋ก ๋์์ผํ๊ธฐ ๋๋ฌธ์ String()
์ผ๋ก ๊ฐ์ธ ์ฃผ์๋ค.2๋จ๊ณ๋ ์ข ๋ ๊ณ์ฐ๊ธฐ ๋๋์ด ๋ ์ ์๋๋ก ๊ตฌํํ๋ ๋จ๊ณ์ด๋ค.
์ซ์๋ฅผ ํ ์๋ฆฌ๋ง ํ์ํ๋ ๊ฑด ๊ฐ๋จํ๋ค.
๋์๋ฆฟ ์ ์ด์์ ํ์ํ๋๋ฐ ์๊ฐ ๋ณด๋ค ์ค๋ ๊ฑธ๋ ธ๋ค.
0๋ถํฐ ์์๋๋ ๊ณ์ฐ๊ธฐ๋ก ์ฒ์์ ๋ค์ด๊ฐ ์๋ string์ด 0 ์ธ ๊ฒฝ์ฐ ์ ๋ ฅํ ์ซ์๋ก ํ์ํ๋ค.
1
(ex -
0
์์1
๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ)
๋ค์ ์ซ์๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ else if
๋ฅผ ์ฌ์ฉํด 0์ด ์๋ ๊ฒฝ์ฐ
๊ธฐ์กด์ ์์ฑ๋ textContent
์ ์
๋ ฅํ ์ซ์๋ฅผ ๋ฃ์ด์ค๋ค.
12
(ex -
1
์ด ํ๋ฉด์ ํ์๋ ์ํ์์2
๋ฅผ ์ ๋ ฅํ ๊ฒฝ์ฐ)
// ํผ์ ์์ฑํ ์ฝ๋
if(display.textContent === '0'){ //์ฒซ ์ซ์๊ฐ 0์ธ ๊ฒฝ์ฐ
display.textContent = buttonContent;
}else if(display.textContent !== '0'){ //์ซ์๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ
display.textContent = display.textContent + buttonContent;
}
//๊ฐ์๋ฅผ ํตํด ์์ฑ๋ ์ฝ๋
if(display.textContent === '0' || previousKey === 'operator'){ //์ฒซ ์ซ์๊ฐ 0์ธ ๊ฒฝ์ฐ
display.textContent = buttonContent;
}else{ //์ซ์๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ
display.textContent = display.textContent + buttonContent;// ์ฒซ ๋ฒ์งธ ์ซ์ ์ดํ ๊ณ์ ๋์ค๊ฒ ํ๋๋ก
}
previousKey = 'number'; // ์ฌํ ๋น
ํผ์ ์ด์ฌํ ๋จธ๋ฆฌ ๊ตด๋ ค์ ์์ฑํ ์ฝ๋๋ฅผ
์ด๋ ๊ฒ ๊ฐ๊ฒฐํ๊ฒ ํํํ ์ ์๋ค๋๊ฒ ์ ๊ธฐ ํ๋ค.
์ฝ๋ฉ์ ์ธ๊ณ๋ ์์ง ๋ฉ์๋ค.
๊ณ์ฐ๊ธฐ ๊ตฌํํ๊ธฐ ์์ ์ ํตํด ๋ฐฐ์ ๋ ์ ์
ํจ์(์ธ์, ์ธ์, ์ธ์)
์๊ฐํ๋ ๋ฐฉ๋ฒ๋ฑ์ ๋ฐฐ์ฐ๊ฒ ๋ ๊ฑฐ ๊ฐ๋ค.
์์ฝ๊ฒ๋ 3๋จ๊ณ ๊น์ง ๊ฐ์ง ๋ชปํ๋ค.
์ซ์, ์ฐ์ฐ๊ธฐํธ๋ฅผ ๋์ดํ๋๋ฐ ๊น์ง ์ฑ๊ณตํ์ง๋ง
๋๋ฒ์งธ ๋ค์ด๊ฐ๋ ์ซ์๊ฐ ํ๋๋ง ๋์ค๊ณ ๊ฒฐ๊ณผ ๊ฐ์ด ์๊พธ ์ด์ํ๊ฒ ๋์๋ค.
์๊ฐ๋ ์ ๋งคํด์ 3๋จ๊ณ ๊น์ง ๊ฐ์ง ๋ชปํ๋ค...
์ด๋ฒ ํ์ต๋ถํฐ ๋ค๋ฅธ ํ์ด๋ถ๊ณผ ํ๋ํ๋ค.
ํ์ด ๋ถ์ ์ปดํจํฐ ์์ดํ์ด๊ฐ ์ ์ํฐ์ ธ์ ๊ทธ๋ฐ์ง ์๊พธ ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ์
จ๋ค.
์ธ์ฌ๋ฅผ ์ ๋๋ก ๋ชป ํ๊ฑฐ ๊ฐ์ ์์ฝ๋ค.
ํ์ด๋ถ๊ป ๋ด๊ฐ ์ด๋ ์ ๋ ์์
์ ํ๊ณ
์ด ๋ถ๋ถ์ ์กฐ๊ธ ์ด๋ ค์์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ๋ค ๋ฑ์ ์ค๋ช
๋๋ ธ๋ค.
๋ด๊ฐ ์์
ํ ๋ถ๋ถ์ ์ดํดํ๋ฉด์ ์ค๋ช
๊น์ง ํ๋
ํ์ด๋ถ์๊ฒ๋ ๋์๊ฒ ์ดํดํ๋๋ฐ ๋ง์ ๋์์ด ๋์ ๊ฒ ๊ฐ๋ค.
๊ณ์ฐ๊ธฐ ๊ตฌํ์ ํ๋ฉด์ ์ฌ๋ฐ๊ธฐ๋ ํ๊ณ
์ด๋ป๊ฒ ์กฐ๊ฑด๋ฌธ์ ์์ฑํด์ผ ๊ตฌํ๋ ๊น? ๋ด๊ฐ ์์ฑํ๋๋ฐ ์ ์ด๋ ๊ฒ ์๋๋๋๊ฑฐ์ง?
๋ฑ ์ฌ๋ฌ ์๊ฐ์ ๊ฐ์ง๋ฉฐ ์์
ํ๋ค.
๋น๋ก 3๋จ๊ณ ์ค 2๋จ๊ณ ๋ฐ์ ๊น์ง ๋ง๋ฌด๋ฆฌ ์ง์์ง๋ง
์ค์๊ฐ ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ์ด๋ ์ ๋ ์ดํดํ ์ ์์๋ค.
๋ค์์ ๋ด๊ฐ HTML/CSS๊น์ง๋ง ์์ ํ ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํด ๋ด์ผ๊ฒ ๋ค.