
애매하게 14일까지 정리하는 이유는요 ?
아직 14일까지만 배웠기 때문인데요 ?
애 ~ 매한 14일까지 가보자고 !
Day 11배열 복사
// 참조 복사
let copiedArray = friends;
// 얕은 복사 : 전개 구문
copiedArray = [...friends];
// 얕은 복사 : slice
copiedArray = friends.slice();
forEach 반환값 없음, 유사배열인 NodeList에 사용 가능push, pop, shift, unshift, reverse, splice, sortconcat, slice, toSorted, toReversed, toSpliced, mapjoinsplittry..catch와 에러 핸들링try {
console.log(value);
} catch(err){
console.log(err); // ReferenceError: value is not defined
console.log(err.name); // ReferenceError
console.log(err.message); // value is not defined
console.log(err.stack); // ReferenceError: value is not defined
}
JSONJSON.stringify( {..} ) : 데이터를 문자화JSON.parse( data ) : 데이터를 객체화Day 12Object → EventTarget → Node → Element → HTMLElement → HTMLAnchorElement → <a>
innerHTML보단 textContent data 키워드를 붙여 dataset으로 접근document.body.insertAdjacentHTML('beforeend', '<div class="tiger">안목해변</div>');

className = '' 모든 클래스 삭제classList 이터러블하여 for..of 사용 가능cssText 해당 요소의 스타일 아예 다시 쓰기 (기존 CSS 날아감)getComputedStyle css 파일에서 작성한 스타일까지 반영됨Day 13<input type="button">first.onclick = handler;addEventListener (⭐️)removeEventListenerdebouncefunction debounce(callback, limit = 1000) {
let timeout;
return function (e) {
clearTimeout(timeout);
timeout = setTimeout(() =>
callback.call(this, e);
}, limit);
};
}
function handle(e) {
console.log(e);
}
ground.addEventListener('mousemove', handle); // 디바운스 X
ground.addEventListener('mousemove', debounce(handle, 500)); // 디바운스 O
throttlefunction throttle(callback, limit = 100) {
let waiting = false;
return function (e) {
// 무조건 한번만 실행됨
if (!waiting) {
callback.apply(this, e);
console.log(this, e);
waiting = true;
// limit 타임마다 실행되도록
setTimeout(() => {
waiting = false;
}, limit);
}
};
}
// throttle(() => {},1000); 1000 타이머에 맞춰서 주기적으로 호출됨
ground.addEventListener('mouseover', throttle(handle, 1000));
event.target : 실제 이벤트가 시작된, 마우스가 닿은 대상event.currentTarget : 이벤트를 실행시킨 대상 (= this)event.target 많이 사용함event.stopPropagation()elem.addEventListener(..., true)event.target을 통해 실제 어디서 이벤트가 발생했는지 알아냄closest 메서드 활용Day 14
// lib/dom/getNode.js
function getNode(){}
export default getNode
// lib/dom/index.js
export {default as getNode} from './getNode.js';
export {default as insert} from './insert.js';
// lib/index.js
export * from './dom/index.js';
export * from './error/index.js';
// main.js
import { getNode, insertLast, clearContents, refError } from './lib/index.js';
defer 기본 적용코어 자바스크립트 진도가 끝나고 DOM, Event를 배우면서부터는 확실히 실습을 많이 해서 정리할 내용이 적다.
이렇게 그동안 배운 내용을 돌아보니 정말 많은 내용을 배웠군아 ...
돔 제어만 했던 과거의 나 이제는 안녕 ~
이제 자스 수업이 단 6일 남았다 ...
수업은 곧 끝나지만 다행히 나에겐 모던자스 딥다이브가 있다 !!!
앞으로도 힘내보자고 ~
항상 감사합니다 쿵야님