+++ 1부터 n까지의 랜덤한 숫자 뽑아내는 법
Math.floor(Math.random() * n) + 1
let date1 = new Date();
let date2 = new Date(2023, 3, 15); // 년월일
let date2_2 = new Date("2023-03-15"); // 문자열로 넣으면 그 값 그대로 인식
let date3 = new Date(2023, 3, 15, 10, 34, 11); // 년월일시분초
let date3_2 = new Date("2023-03-15 10:42:35"); // 시간은 문자열 그대로 넣어도 영국시간 기준으로 변환
let date3_3 = new Date("2023/03/15 10:42:35");
console.log('date2', date2)
console.log('date2_2', date2_2)
console.log('date3', date3)
console.log('date3_2', date3_2)
console.log('date3_3', date3_3)
결과
date2 2023-04-14T15:00:00.000Z
date2_2 2023-03-15T00:00:00.000Z
date3 2023-04-15T01:34:11.000Z
date3_2 2023-03-15T01:42:35.000Z
date3_3 2023-03-15T01:42:35.000Z
let date4 = new Date('2023-03-16');
let date5 = new Date('2023-03-01');
let dateDiff = date4.getTime() - date5.getTime();
console.log(diff); // 밀리초
console.log(diff / 1000); // 초
console.log(diff / 1000 * 60); // 분
console.log(diff / 1000 * 60 * 60); // 시간
console.log(diff / 1000 * 60 * 60 * 24); // 일
결과
1296000000
1296000
21600
360
15
: 자바스크립트 언어 사양에 포함되지 않고 웹 브라우저에서 제공하는 객체
window.scrollTo(200, 200); // 200, 200으로만 이동
window.scrollTo({ left: 200, top: 200, behavior: "smooth" });
// 마우스 휠 굴리듯이 부드럽게 이동
window.scrollBy(200, 200); // 계속 200, 200씩 이동
window.scrollBy({ left: 200, top: 200, behavior: "smooth" });
// 마우스 휠 굴리듯이 부드럽게 이동
open()
open(url)
open(url, target)
open(url, target, windowFeatures)
ex.
window.open('https://www.naver.com', '_blank', 'width=200, height=200, left=300, top=200');
+++ 여러개를 선택하는 선택자는 노드들을 배열에 담아서 리턴한다
const el1 = document.getElementById("div1");
const el2 = document.getElementsByClassName("divcls");
const el3 = document.getElementsByTagName("p");
const qs1 = document.querySelector("#div1"); // 아이디 선택자
const qs2 = document.querySelectorAll(".divcls"); // 클래스 선택자
const qs3 = document.querySelectorAll(".container1 .indiv"); // container1 안에 있는 indiv클래스만을 선택
document.querySelector('#t1').textContent = "<strong>textContent</strong> 속성";
document.querySelector('#t2').innerText = "<strong>textContent</strong> 속성";
document.querySelector('#t3').innerHTML = "<strong>textContent</strong> 속성";
=> 화면 상 결과
: 클래스 속성을 조작할 때 사용
// 추가 : 이미 있으면 추가 X
document.getElementById('box3').classList.add('greenbox');
// 삭제
document.getElementById('box1').classList.remove('redbox');
// 토글 (없앴다가 생겼다가)
document.getElementById('box4').classList.toggle('redbox');
화면상 결과
메서드를 통해 속성 조작
const aTag = document.querySelector('a');
console.log(aTag.getAttribute("href"));
console.log(aTag.getAttribute("target"));
aTag.removeAttribute("href");
aTag.setAttribute("href", "https://www.daum.net");
console.log(aTag.getAttribute("href"));
결과
https://www.naver.com
_blank
https://www.daum.net
// HTML
<div class="box" id="box1"></div>
<div class="box" id="box2"></div>
<div class="box" id="box3"></div>
<div class="box redbox" id="box4"></div>
// JS
document.getElementById('box1').classList.add('redbox'); // box redbox
document.getElementById('box2').setAttribute("class", "bluebox"); // bluebox
[JavaScript]HTML 애트리뷰트(Attribute) 설정하는 방법
setAttributeNode : Attr 객체를 매개변수로 가지고, 설정된 Attr 객체를 반환. 이미 Attribute가 존재하는 경우 매개변수로 전달된 Attr객체로 대체
setAttribute : Attribute의 이름과 값을 매개변수로 가지고 undefined를 반환. 이미 Attribute가 존재하는 경우 값을 변경
// HTML
<div id="container">
<p id="p1">p1</p>
<p id="p2">p2</p>
</div>
// JS
const p2 = document.querySelector('#p2');
p2.parentNode.removeChild(p2);
// 자식 요소 모두 삭제
const p12 = document.querySelectorAll("#container p"); // 배열 형태로 담아놓기
// 1. for..of문
for (p of p12) {
p.parentNode.removeChild(p);
}
// 2. for문
for (let i = 0; i < p12.length; i++) {
p12[i].parentNode.removeChild(p12[i]);
}