- input의 유효성 검사를 작동시키기 위해서는 input이 반드시 form 안에 있어야 한다.(div, span x)
- input 안에 있는 button을 누르거나 type이 submit인 input을 클릭하면 내가 작성한 form이 submit되어서 페이지가 새로고침된다.
<form id="login-form">
<input
required maxlength="15"
type="text"
placeholder="What is your name?"/>
<button>Log In</button>
</form>
function onLoginSubmit(event) {
event.preventDefault();
console.log(event);
}
loginForm.addEventListener("submit", onLoginSubmit);
preventDefault()
: 어떤 이벤트의 기본 행동이 발생하지 않도록 막는 것기본행동 : 어떤 function에 대해 브라우저가 기본적으로 수행하는 동작
ex) form을 submit하면 자동 새로고침 된다 (기본동작) -> preventDefault() 를 추가함으로써 새로고침을 막는다.
greeting.innerText = "Hello " + username;
greeting.innerText = `Hello ${username}`; //`` 백틱사용!
const HIDDEN_CLASSNAME = "hidden";
function onLoginSubmit(event) {
event.preventDefault();
const username = loginInput.value;
loginForm.classList.add("hidden");
greeting.innerText = `Hello ${username}`;
greeting.classList.remove(HIDDEN_CLASSNAME);
}
- 우리가 브라우저에 뭔가를 저장할 수있게 해준다.
- 나중에 가져다 쓸 수 있음
- key와 value로 이루어져 있는 작은 DB라고 생각하자
local Stroage는 기본적으로 console에 있다.
사용법
localStorage.setItem("username", username);
이 외에도 getItem, removeItem 등이 있다.
결과
interval은 ‘매번’ 일어나야 하는 무언가를 말 한다.
function sayHello() {
console.log("hello");
}
setInterval(sayHello, 5000);
clearInterval()로 해제 가능
Timeout은 기다렸다가 한 번만 실행한다.
setTimeout(sayHello, 5000);
date.getHours().padStart(2, "0");
<!-- html -->
<h2 id="clock">00:00:00</h2>
//javascript
const clock = document.querySelector("h2#clock");
function getClock() {
const date = new Date();
const hours = String(date.getHours()).padStart(2, "0"); // String으로 형 변환
const minutes = String(date.getMinutes()).padStart(2, "0"); // String으로 형 변환
const seconds = String(date.getSeconds()).padStart(2, "0"); // String으로 형 변환
clock.innerText = `${hours}:${minutes}:${seconds}`;
}
getClock(); // 처음에 한번 실행하고
setInterval(getClock, 1000); // 1초마다 계속 실행
random()함수는 0~1 사이의 수를 출력해준다
여기다 10을 곱하면 0~10 사이의 수, 11을 곱하면 0~11 사이의 수 이렇게 응용이 가능하다.
const quotes = [
{
quote: "The way to get started is to quit talking and begin doing.",
author: "Walt Disney",
}, .... //10개의 명언 object 배열
];
const quote = document.querySelector("#quote span:first-child");
const author = document.querySelector("#quote span:last-child");
const todaysQuote = quotes[Math.floor(Math.random() * quotes.length)]; //floor -> 내림
quote.innerText = todaysQuote.quote; // quote, author은 property
author.innerText = todaysQuote.author;
const images = ["0.jpeg", "1.jpeg", "2.jpeg"]; //img 폴더에 넣어놓은 이미지 파일들
const chosenImage = images[Math.floor(Math.random() * images.length)];
const bgImage = document.createElement("img");
bgImage.src = `img/${chosenImage}`;
document.body.appendChild(bgImage);
3번째 줄 부터 해석
createElement("img")
: JS에서 html element를 생성하는 방식이다 bgImage.src = `img/${chosenImage}`;
appendChild(bgimage)
: 생성한 html element를 html의 body 아랫부분에 넣어준다.