320x100
โ ์ด ํฌ์คํ ์ ๋ ธ๋ง๋์ฝ๋ - "๋ฐ๋๋ผ JS๋ก ํฌ๋กฌ ์ฑ ๋ง๋ค๊ธฐ๋ฅผ ๋ค์ผ๋ฉด์ ๊นํ๋ธ์ ๊ธฐ๋กํ ํ๊ธฐ๋ฅผ ์ฎ๊ธด ๋ด์ฉ์ ๋๋ค.
โฑ Vanilla JS๋ก ํ์ด๋จธ ๋ง๋ค๊ธฐ
๐ฑ Interval vs Timeout
๐ ๋์ ์ฌ์ฉ๋ฒ๊ณผ ์ฐจ์ด์ ์ ๋ํด์ ์์๋ณด๊ธฐ
- Interval
- ๋งค๋ฒ ์ผ์ด๋์ผ ํ๋ ์ผ์ ์ฌ์ฉ
- JS์ ์ด๋ฏธ ๋ด์ฅ๋์ด ์๋ ํจ์
- setInterval(ํจ์๋ช , ๋ฐ๋ณต๋ ์๊ฐ(ms)) ์ผ๋ก ์ฌ์ฉํ๋ค.
- Timeout
- ํ ๋ฒ ์คํ ํ ๋ฐ๋ณต๋์ง ์์
- ์ค์ ํ ์๊ฐ ๋ค์ ํ ๋ฒ ์คํ๋๋ค.
- setTimeout(ํจ์๋ช , ์คํ๋ ์๊ฐ(ms)) ์ผ๋ก ์ฌ์ฉํ๋ค.
- ๐ Date ๊ด๋ จ ์ธ์คํด์ค ๋ฉ์๋ - MDN
- ex) getDay, getFullYear, getHours, getMinutes, getSeconds...
- ๐ ํ์ด๋จธ์๋ setIntervalํจ์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
- ์์ ์ฝ๋
setInterval(getClock, 1000) // 1์ด ๋ง๋ค ๊ณ์ ์คํ
setTimeout(getClock, 5000) // 5์ด ๋ค ํ๋ฒ ์คํ
๐ฑ ํ์ฌ ์๊ฐ ํ์ํ๊ธฐ
๐ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ฌ ์๊ฐ, ๋ ์ง data ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ์๊ฐ ๊ฐ์ ธ์ค๊ธฐ
- getHours, getMinutes, getSeconds๋ฅผ ์ฌ์ฉ
- ๋ ์ง ๊ฐ์ ธ์ค๊ธฐ
- new Date( ) ์ฌ์ฉ
- new ๋ถ์ด๋ ์ด์ ?
: ๊ทธ๋ฅ date( ); ๋ new date( );๋ฅผ ์ด ๊ฒ์ ๊ทธ๋๋ก string์ผ๋ก ๋ง๋ ๊ฒ,
๋ฐ๋ผ์ getHours ๊ฐ์ property๋ฅผ ์ฌ์ฉํ ์ ์๋ค!
// new ์ฌ์ฉํ๋ ์ด์ ?
date( ); === new date( ).toString();
- ์์ ์ฝ๋
function getClock() {
// ๋ ์ง
const date = new Date();
// ์, ๋ถ, ์ด ๋ถ๋ฆฌ
const hours = date.getHours();
const minutes = date.getMinutes();
const seconds = date.getSeconds();
clock.innerText = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
}
setInterval(getClock, 1000);
- ๊ฐ์ ํ ์์ ๐ค
- ์๊ฐ ํ์๊ฐ ํ ์๋ฆฌ ์ผ ๋ 01, 02, 03 ์ด๋ฐ ์์ผ๋ก ๋ณด์ด๊ฒ ๋ง๋ค๊ณ ์ถ๋ค.
- ์๋ก ๊ณ ์นจ ํ๋ฉด 1์ด ๋ค์ ์๊ฐ์ด ํ์๋๋ค.
๐ฑ PadStart
๐ ์๊ฐ ํ์ 01, 02, 03 ๊ฐ์ด ๋ณด์ด๋๋ก ์์ ํ๊ธฐ
- PadStart
- ๊ฐ์ง๊ณ ์๋ string์ ๋ณด๋ค ๊ธธ๊ฒ ๋ง๋ค์ด์ผ ํ ๋ ์ฌ์ฉ
- ์ฌ์ฉ๋ฒ : padStart(๊ฐ์ ธ์ผ ํ ์๋ฆฟ์, "๋น์๋ฆฌ์ ์ฑ์ฐ๊ณ ์ถ์ ์ซ์ ๋๋ ๋ฌธ์")
- ๐ ์ฃผ์์ฌํญ
: padStart๋ string์๋ง ์ฌ์ฉ ๊ฐ๋ฅ -> number๋ string์ผ๋ก ๋ณํํด์ผ ํ๋ค. → String(๋ณํํ ์ซ์)
- ์์ ์ฝ๋
const hours = String(date.getHours()).padStart(2, "0");
const minutes = String(date.getMinutes()).padStart(2, "0");
const seconds = String(date.getSeconds()).padStart(2, "0");
- hours, minutes, seconds๊ฐ string์ผ๋ก ๋ณํ๋์ผ๋ฏ๋ก clock์ ๋ฃ์ ๋ณ์์ ํํ๋ ๋ณํ๋๋ค.
// ๋ณํ ์
clock.innerText = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
// ๋ณํ ํ
clock.innerText = `${hours}:${minutes}:${seconds};
- โ ์ถ๊ฐ๋ก ๋ฐฐ์ด ๊ฒ
- PadEnd : ๊ฐ์ง string๋ค์ ์๋ฆฌ๋ฅผ ์ฑ์ธ ๋ ์ฌ์ฉ
- string ๊ธธ๊ฒ ๋ง๋ค ๋ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์
๐ฑ ํ์ด์ง ๋ก๋๋๋ ์๊ฐ ํ์ด๋จธ ์์๋๋๋ก ์ค์ ํ๊ธฐ
๐ setInterval๋ง ์ฐ๋ฉด 1์ด ๋ค์ ํ์ด๋จธ๊ฐ ๋์๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ณด์
- ํด๊ฒฐ๋ฐฉ๋ฒ
- setInterval์ด ์์๋๊ธฐ ์ ์ getClick ํจ์๋ฅผ ํ ๋ฒ ๋ ํธ์ถํด ์ค๋ค.
- ์ต์ข ์ฝ๋
const clock = document.querySelector("#clock");
function getClock() {
const date = new Date();
const hours = String(date.getHours()).padStart(2, "0");
const minutes = String(date.getMinutes()).padStart(2, "0");
const seconds = String(date.getSeconds()).padStart(2, "0");
clock.innerText = ${hours}:${minutes}:${seconds};
}
getClock();
setInterval(getClock, 1000)
๋ฐ์ํ
'JavaScript > Nomad Coders' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] ๐ก Day 10 - JavaScript๋ก TodoList ๋ง๋ค๊ธฐ (0) | 2022.05.01 |
---|---|
[TIL] ๐ก Day 9 - ๋๋ค์ผ๋ก ๋ช ์ธ, ๋ฐฐ๊ฒฝ ์ค์ ํ๊ธฐ (0) | 2022.04.16 |
[TIL] ๐ก Day 7 - Javascript value getting, saving, loading ํ๋ ๋ฐฉ๋ฒ (0) | 2022.04.01 |
[TIL] ๐ก Day 6 - ํจ์๋ ์ ๋ณด๋ฅผ ๋ด๊ณ (0) | 2022.03.31 |
[ํ๊ธฐ] ๋ ธ๋ง๋์ฝ๋ ๋ฐ๋๋ผJS ์ฑ๋ฆฐ์ง 1์ฃผ์ผ ์ง๋ ์์ ํ๊ธฐ (0) | 2022.03.16 |
๋๊ธ