자바스크립트 클립보드 복사 기능 만들기 참고: https://zetawiki.com/wiki/JavaScript_%ED%81%B4%EB%A6%BD%EB%B3%B4%EB%93%9C%EB%A1%9C_%EB%B3%B5%EC%82%AC%ED%95%98%EA%B8%B0 내용 클립보드 복사 기능을 만들 일이 있어 좀 찾아보았다. 바닐라 스크립트로 임시 textarea를 만들어서 구현하는 게 크로스 브라우징 문제 등에서 자유롭고 간단해 보였다. 구현 const textarea = document.createElement("textarea"); // teatarea 요소 생성 document.body.appendChild(textarea); // body에 요소 추가 textarea.value = '복사할 텍스..
자바스크립트 Date 객체 깊은 복사하기 참고: https://stackoverflow.com/questions/1090815/how-to-clone-a-date-object 업무 중에 날짜 객체를 이용해서 시간 차이에 따른 상태변화를 할 일이 있었다. 그때 날짜 객체의 깊은 복사를 하지 않아 버그가 발생했었는데, 스택 오버 플로에서 해답을 찾았다. const targetDate = new Date(); const aliasDate = new Date(targetDate); 위와 같이 하면 깊은 복사가 완료된다. 매우 간단하다.
iOS, Safari(사파리) 자바스크립트 new Date() 크로스브라우징 이슈 특정 시간이 되면 어떤 요소가 사라지도록 처리하는 업무와 타이머를 생성할 필요가 있었는데 iOS와 Safari에서는 제대로 작동하지 않거나 타이머의 숫자가 NaN으로 나타나는 이슈가 있었다. 서핑을 좀 해보니 크로스 브라우징 문제였고, iOS와 safari가 아래와 같은 표기법을 지원하지 않아서였다. new Date('2021-06-27 18:23:24'); // invalid Data로 확인 구글링 결과 해결법은 크게 두 가지였다. 1. Moment.js 사용하기 https://momentjs.com/ 2. 표준표기법 사용하기 위 코드를 아래와 같이 사용하면 된다. new Date(2021, 5, 27, 1..
자바스크립트 Array.from() 활용하기 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from 코딩테스트 강의를 듣다가 매우 흥미로운 활용법을 보게 되어 정리한다. 특정 값을 원소로 갖는 특정 길이의 배열 초기화 길이 5에 모든 인덱스에 1을 원소로 갖고 있는 배열을 만들고자 할 때 아래와 같이 만들었다. const arr = new Array(5).fill(1); 근데 Array.from을 조금만 활용하면 굉장히 쉽게 만들 수 있다. const arr = Array.from({length: 5}, () => 1); 아래와 같이 콜백함수를 지정해주지 않으면 모든 원소가 undefined고 길이가 ..