์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- https://lo-victoria.com/introduction-to-redux-toolkit-for-beginners
- UI
- removeCookie
- ์๋ฐ์คํฌ๋ฆฝํธ#JS#var#let#const#undefined#null
- ํท๊ฐ๋ฆฐ๋ค~
- User Flow
- Beesbeesbees
- children vs childrenNodes
- for~in/for~of
- redux์ํ์ ์ง
- react
- @redux-toolkit
- ์๋ฐ์คํฌ๋ฆฝํธ#JS#slice#splice
- ์๋ฐ์คํฌ๋ฆฝํธ#์กฐ๊ฑด๋ฌธ#๋ฌธ์์ด
- JS#3์ผ์ฐจ๋ฌ๋ฆฌ์#์ด๋ฐ์ธ๋ฐ#์๊ฐ๊ธ๋ฐฉ~
- https://dasima.xyz/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%9C%EA%B3%B1-math-pow-%EA%B3%84%EC%82%B0/
- js
- cmarket
- UX
- https://www.daleseo.com/js-array-slice-splice/
- slice/splice/split
- CSS
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ ธ๋๊ต๊ณผ์
- dom
- ๋ด์ฅ๊ณ ์ฐจํจ์
- toString#String
- ใทใ
- variable#function
- https://developer-talk.tistory.com/299
- Today
- Total
Daily Front_Minhhk
[CSS, JS] ๊ณ์ฐ๊ธฐ์ ๊ธฐ๋ฅ ์ถ๊ฐํ๊ธฐ! ๋ณธ๋ฌธ
๐ฅ ์ฐ์ ์ต์ข ์ ์์ฑ๋ณธ์ด๋ค. ๋์ดํธ๋ฉ์ด๋ ๋ชปํ๊ฒ ๋ค~~~ใ ์ง๊ธ๋ ์ต์ ์ ๋คํ๋ค?!
๐ฃ ๊ทธ๋ฅ ๋ง ์ฌ์ฉํ๋ ๊ณ์ฐ๊ธฐ์ ๋ก์ง์ด ์ด๋ ๊ฒ ๋ณต์กํ ์ค์ ๋ชฐ๋๋คใ ใ ์ญ์ ์ฌ์ด๊ฑด ์๋ค~
๐ต๐ซ ์ค๋์ ์ด๋ ๊ฒ ์ผ๋จ๋ฝ์ด ๋์์ง๋ง ,,, ๋ค์ ๋ด์ผ์ ์ํด ๋ฌ๋ ค๋ณด์๊ณ ! ๊น๊ณผ ๋ ธ๋์ ๋ง๋ณด๊ธฐ ์ผ ๋ฏ? ํ๋ค
html์ ๊ทธ๋๋ก ๊ฐ์ ธ๊ฐ๊ณ ,
css์์ ๋ฒํผ์ border-bottom ์ถ๊ฐ์?? ์๋ active ์ถ๊ฐ๋ฅผ ํด์ฃผ์๋ค.
ํด๋ฆญ์ ํจ๊ณผ๋ฅผ ๋ํ๋ธ๋ค!
CSS,,
.clear__and__enter > button:active {
box-shadow: 1px 1px 0 rgba(77, 234, 137, 0.5);
position: relative;
top:2px;
}
button:active {
color: #ffffff;
font-size: 20px;
box-shadow: 1px 1px 0 rgba(77, 234, 137, 0.5);
position: relative;
top:2px;
border-bottom: none;
}
.operator:active {
color:#440d77
}
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฆฌ๊ณ !!
JS,,
const calculator = document.querySelector(".calculator");
const buttons = calculator.querySelector(".calculator__buttons");
const operator = document.querySelector(".calculator__operator");
const display = document.querySelector(".calculator__display--for-advanced");
let firstNum, operatorForAdvanced, previousKey, previousNum;
// n1๊ณผ n2 -> operator
let calculate = (n1, operator, n2) => {
let result = 0;
if (operator === "+") {
result = parseInt(n1) + parseInt(n2); // '+'๋ฒํผ์ ๋๋ ์ ๋
} else if (operator === "-") {
result = parseInt(n1) - parseInt(n2); // '-'๋ฒํผ์ ๋๋ ์ ๋
} else if (operator === "*") {
result = parseInt(n1) * parseInt(n2); // '*'๋ฒํผ์ ๋๋ ์ ๋
} else if (operator === "/") {
result = parseInt(n1) / parseInt(n2); // '/'๋ฒํผ์ ๋๋ ์ ๋
}
return String(result);
};
// ๋ฒํผ์ ๋๋ ์ ๋ ์๋ํ๋ ํจ์
buttons.addEventListener("click", (event) => {
const target = event.target; // ํด๋ฆญ๋ HTML ์๋ฆฌ๋จผํธ์ ์ ๋ณด
const action = target.classList[0]; // ํด๋ฆญ๋ HTML ์๋ฆฌ๋จผํธ์ ํด๋ ์ค ์ ๋ณด
const buttonContent = target.textContent; // ํด๋ฆญ๋ HTML ์๋ฆฌ๋จผํธ์ ํ
์คํธ ์ ๋ณด
if (target.matches("button")) {
if (action === "number") {
// 0์ ๋ํ๋ด๊ฑฐ๋? previousKey์ ์ฐ์ฐ์๊ฐ ์๋ค๋ฉด? ๊ทธ๊ฒํ๋ ๋ง ํ์
if (display.textContent === "0" || previousKey === "operator") {
// console.log('์ซ์ ' + buttonContent + ' ๋ฒํผ');
display.textContent = buttonContent;
} else {
display.textContent += buttonContent;
}
// key์ number๋ฅผ ํ ๋น,,, ์ด๊ฑธ ์ํด์ ๋๋ฒ์งธ ์ซ์์ ์์ด์ง ์์๋คใ
ใ
previousKey = "number";
}
if (action === "operator") {
// firstNum์ ์ฒ์ ๊ฐ์ ์ ์ฅ
firstNum = display.textContent;
// display.textContent = Number(0);
// ๋ณ์ operatorForAdvanced์ ๋ฒํผ์ ์ปจํ
์ธ (์ฐ์ฐ์ ๊ธฐํธ)๋ฅผ ํ ๋น ํ (๋์ค calculate์์ ์ฐ์ผ ๊บผ์ ์ฐ์ฐ์)
operatorForAdvanced = buttonContent;
// key์ ์ฐ์ฐ์ ํ ๋น
previousKey = "operator";
}
if (action === "clear") {
display.textContent = "0"; // ํ๋ฉด์ 0 ํ ๋น
// ๋ณ์์ ํน์ ๊ฐ ํ ๋นํ๋ ์ด๊ธฐํ ๋ฏธ ์งํ์, undefined๋ก ์ด๊ธฐํ ๊ฐ๋ฅ
firstNum = undefined;
operatorForAdvanced = undefined;
previousKey = undefined;
previousNum = undefined;
}
if (action === "calculate") {
console.log("๊ณ์ฐ ๋ฒํผ");
// ๊ณ์ฐ๊ธฐ์ ํ๋ฉด์ calculate ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
previousNum = display.textContent;
display.textContent = calculate(
firstNum,
operatorForAdvanced,
previousNum
);
previousKey = "calculate";
}
}
});
test.script๋ ํต๊ณผํ๋ค!
ํ์ง๋ง,, ๋ง์์ ์๋๋๊ฒ
if (target.matches('button')) {
if (action === 'number') {
if (display.textContent === '0' || previousKey === 'operator') {
display.textContent = buttonContent;
}
else {
display.textContent += buttonContent;
}
}
์ฌ๊ธฐ์
if (display.textContent === '0' || previousKey === 'operator') {
display.textContent = buttonContent;
}
์ด๋ ๊ฒ ๋๋ฉด 0 ํ์๊ฐ ๋ ๋๋ 0์ ๋๋ฅผ๋ ๋ณํ์ง ์๊ฒ 0์ ํ ๋น ํ๋ค,
ํ์ง๋ง ์ฐ์ฐ์๋ฅผ ๋๋ฅธ ํ ๋๋ฒ์งธ ์ซ์๋ฅผ ๋๋ฅผ๋
previousKey์ ์ฐ์ฐ์๊ฐ ํ ๋น์ด ๋์๊ธฐ์,?
๋๋ฒ์งธ ์ซ์ ๋ฃ๋์นธ์๋ ํ๋์ฉ ๋ฐ์ ํ ๋น๋์ง ์๋๋ค… ใ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํ ๊น….?
๐ ์ง์ง,, ๋ค ๋ฃ์ด ๋๊ณ ๋๋ฒ๋ง ์ ์ด์ ํค์ ํ ๋น์ ์ํ๊น?!,,, ๋ฐ๋ณด ๊ฐ๋ค ์ ์คํฌ๋ฆฝํธ์๋ ์์ ์๋ฃ!!
// key์ number๋ฅผ ํ ๋น,,, ์ด๊ฑธ ์ํด์ ๋๋ฒ์งธ ์ซ์์ ์์ด์ง ์์๋คใ
ใ
previousKey = 'number'
๊ณผ์ ์ ์ถ๐๐ป
์ ์๋ git ์์ fork ํด์จ๋ค. (๋ด repository ์ ๋ณต์ )
ํ์ผ ์์ ํ
์์ ํ ํ์ผ์ add file ๋ก ์ ๋ก๋ ํ๋ค
๊ทธ๋ฆฌ๊ณ pull request ํ๋ค (๋์ค ์ ๋ฌด ๋ณผ ๋ ์ฌ๋ฟ์ฌ๋์ด ๊ฐ์ด ํ์ฉํ๊ธฐ์, ํญ์ ์ ๊ตฌ๋ถ์ด ๊ฐ๋๋ก ๋ช ์นญ์ฐ์!)
'Code๊ฐ๋ฐ์ผ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LINUX] ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด ์ธ nvm,npm / RWE(์ฝ๊ธฐ ์ฐ๊ธฐ ์คํ) (0) | 2022.11.02 |
---|---|
[๊ฐ๋จ์ ๋ฆฌ] innerText ์ textContent ์ฐจ์ด์ / Number์ parseInt ์ฐจ์ด์ (0) | 2022.11.01 |
[CSS] ๊ณ์ฐ๊ธฐ ๋ชฉ์ ๊ฐ๋จ~ (0) | 2022.10.31 |
[CSS] Flexbox // ๋ณต์ต!! (0) | 2022.10.30 |
[CSS ] css(Cascading Style Sheets), UI,UX,Selector (0) | 2022.10.27 |