# Intervals

 

*한 파일에 모든 코드를 작성하지 말고 입력하는 내용에 따라서 파일, 폴더 따로 만들어두기

 

setInterval은 어떤 함수를 일정 간격으로 호출해주는 것

setInterval(함수이름, 함수주기);

 

함수주기(시간 간격)는 1/1000초 단위임

setInterval(function, 1000);  -> 1초마다 호출
setInterval(function, 3000);  -> 3초마다 호출

 

[JS]

@@ -0,0 +1,7 @@
const clock = document.querySelector("h2#clock");

function sayHello() {
  console.log("hello");
}

setInterval(sayHello, 5000);

 

[html]

  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="style.css" />
    <link rel="stylesheet" href="css/style.css" />
    <title>Momentum App</title>
  </head>
  <body>
@@ -16,7 +16,9 @@
      />
      <input type="submit" value="Log In" />
    </form>
    <h2 id="clock">00:00</h2>
    <h1 class="hidden" id="greeting"></h1>
    <script src="app.js"></script>
    <script src="js/greetings.js"></script>
    <script src="js/clock.js"></script>
  </body>
</html>

 

 

 

 

 

# Timeouts & dates

 

setInterval(sayHello, 1000);
sayHello() 라는 펑션을 1초마다 반복한다는 의미.
단 바로 실행되지 않고 1초 후 첫 시작이 되고 계속 1초마다 반복된다.

setTimeout(sayHello, 1000);
1초 기다렸다가 한번만 실행.

 

[JS]

const clock = document.querySelector("h2#clock");

function sayHello() {
  console.log("hello");
function getClock() {
  const date = new Date();
  clock.innerText = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
}

setInterval(sayHello, 5000);
getClock();
setInterval(getClock, 1000);

 

[html]

      />
      <input type="submit" value="Log In" />
    </form>
    <h2 id="clock">00:00</h2>
    <h2 id="clock">00:00:00</h2>
    <h1 class="hidden" id="greeting"></h1>
    <script src="js/greetings.js"></script>
    <script src="js/clock.js"></script>

 

 

 

 

# PadStart 

 

number를 string으로 바꾸는 방법은 String() 안에 감싸는 방법이 있다.

String(new Date().getHours()).padStart(2,'0');


0> 00 로 바꾸고 싶을 때는 padStart(x, 'y') 를 사용하면 된다.

-> padStart는 내가 갖고 있는 string 을 길게 만들어 주고 싶을 때 사용.
-> 뒤에서 추가하고 싶을 때는 padEnd를 사용하면 된다.
-> x는 원하는 length, y는 앞에 채워줄 내용.

[JS]

function getClock() {
  const date = new Date();
  clock.innerText = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
  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();

 

 

# Recap

 

setInterval(sayHello, 5000);

- 매초, 매분마다 반복되는 일을 해야할 때 실행하는 함수.

- 함수이름, 시간 순으로 적음.
- 1초는 1000임

setTimeout(sayHello,1000);

- 함수를 바로 실행하고 싶지 않을 때 사용
- 위 예시는 1초 뒤에 sayHello를 실행시킨다는 의미임.

*1. != 2. 비슷하게 생겼지만 전혀다름.

getHourse().padStart(2,"0");

 

getHourse()

한 자릿수의 시간이 두 글자(ex.01)로 나오게 하도록 사용하는 함수

padStart(2,"0")

두 글자가 되지 않으면 0을 앞에 추가한다는 의미
+ 뒤에 글자를 추가하고 싶으면 padEnd를 사용하면 됨

 

 

'Web > JavaScript' 카테고리의 다른 글

[JS/이론 정리] script 태그 ~ 형 변환  (0) 2022.07.30
[JS] Quotes & Background 구현  (0) 2022.07.28
[JS] Login 구현 - Input, Form, Events  (0) 2022.07.27
[JS] CSS in JavaScript  (0) 2022.07.27
[JS] document, html, elements, events  (0) 2022.07.21