시간을 절약할 수 있는 16개 이상의 JavaScript 스니펫
32369 단어 webdevprogrammingbeginnersjavascript
어두운 모드인지 감지
이 스니펫은 사용자가 어두운 모드에 있는지 감지합니다. 그렇다면 true를 반환합니다.
const isDarkMode = () =>
globalThis.matchMedia?.("(prefers-color-scheme:dark)").matches ?? false;
// Usage
isDarkMode();
클립 보드에 복사
이 스니펫은 주어진 텍스트를 클립보드에 복사합니다.
const copyToClipboard = (text) =>
navigator?.clipboard?.writeText(text) ?? false;
// Usage
copyToClipboard("Hello World!");
배열의 항목을 고유하게 만들기
이 스니펫은 배열의 항목을 고유하게 만듭니다.
const uniqueArray = (array) => [...new Set(array)];
// Usage
uniqueArray([1, 2, 3, 4, 5, 1, 2, 3, 4, 5]); // [1, 2, 3, 4, 5]
난수 얻기
const getRandomNumber = (min, max) => ~~(Math.random() * (max - min + 1)) + min;
// Usage
getRandomNumber(1, 10); // Random number between 1 and 10
임의의 16진수 색상 가져오기
이 스니펫은 임의의 16진수 색상을 반환합니다. 먼저 0에서 255 사이의 난수를 생성한 다음 이를 16진수로 변환합니다.
const getRandomHexColor = () =>
"#" + ((Math.random() * 0xffffff) << 0).toString(16);
// Usage
getRandomHexColor(); // Random hex color
셔플 배열
이 스니펫은 배열을 섞습니다.
const shuffleArray = (array) => array.sort(() => Math.random() - 0.5);
// Usage
shuffleArray([1, 2, 3, 4, 5]); // Randomly shuffled array
함수를 x번 반복
이 스니펫은 함수를 x번 반복합니다. 루프가 많은 경우에 유용합니다.
const loop = (x, fn) => [...Array(x)].forEach(fn);
// Usage
loop(10, () => console.log("Hello World!"));
배열에서 임의의 요소 가져오기
이 조각은 배열에서 임의의 요소를 반환합니다.
const getRandomElement = (array) => array[~~(Math.random() * array.length)];
// Usage
getRandomElement([1, 2, 3, 4, 5]); // Random element from array
임의의 문자열 가져오기
이 스니펫은 임의의 문자열을 반환합니다.
const getRandomString = (length) =>
[...Array(length)]
.map(() => String.fromCharCode(~~(Math.random() * 26) + 97))
.join("");
// Usage
getRandomString(10); // Random string with 10 characters
임의 부울 가져오기
이 스니펫은 임의의 부울을 반환합니다.
const getRandomBoolean = () => Math.random() >= 0.5;
// Usage
getRandomBoolean(); // Random boolean
두 숫자 사이의 난수 얻기
이 조각은 두 숫자 사이의 난수를 반환합니다.
const getRandomNumberBetween = (min, max) =>
~~(Math.random() * (max - min + 1)) + min;
// Usage
getRandomNumberBetween(1, 10); // Random number between 1 and 10
쿠키 가져오기
이 스니펫은 쿠키 값을 반환합니다.
const getCookie = (name) =>
("; " + document.cookie).split(`; ${name}=`).pop().split(";")[0];
// Usage
getCookie("name"); // Value of cookie "name"
모든 쿠키 지우기
const clearCookies = () =>
document.cookie
.split(";")
.forEach(
(c) =>
(document.cookie = c
.replace(/^ +/, "")
.replace(/=.*/, "=;expires=Thu, 01 Jan 1970 00:00:00 UTC"))
);
// Usage
clearCookies(); // Clear all cookies
요소의 맨 위로 스크롤
const scrollToTop = (element) => element.scrollIntoView({ behavior: "smooth" });
// Usage
scrollToTop(document.querySelector("#element"));
숫자의 평균 구하기
const avg = (...numbers) => numbers.reduce((a, b) => a + b, 0) / numbers.length;
// Usage
avg(1, 2, 3, 4, 5); // 3
유효한 이메일
이 스니펫은 정규식을 사용하여 이메일의 유효성을 검사합니다.
const validateEmail = (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
// Usage
validateEmail("[email protected]"); // true
개체 유효성 검사
이 스니펫은 규칙 객체를 사용하여 객체의 유효성을 검사합니다.
const validateObject = (object, rules) =>
Object.keys(rules).every((key) => rules[key](object[key]));
// Usage
const rules = {
name: (name) => name.length > 0,
email: (email) => validateEmail(email),
password: (password) => password.length > 0,
};
validateObject({ name: "", email: "", password: "" }, rules); // false
청크 배열
배열을 x 길이 청크로 청크합니다.
const chunkArray = (array, chunkSize) =>
[...Array(Math.ceil(array.length / chunkSize))].map((_, index) =>
array.slice(index * chunkSize, (index + 1) * chunkSize)
);
// Usage
chunkArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 3); // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
RGB 에서 HEX
const rgbToHex = (r, g, b) =>
"#" + ((r << 16) + (g << 8) + b).toString(16).padStart(6, "0");
// Usage
rgbToHex(255, 0, 0); // #ff0000
원시 문자열을 일반 문자열로
다음과 같은 상황에 처한 경우에 유용합니다.
formatFn("string") + formatFn("string");
그렇게 하는 대신 ES6의 원시 문자열 구문을 사용할 수 있습니다.
const f = (...args) => String.raw(...args); // This returns a normal string
formatFn(f`string` + f`string`);
두 개체 비교
const compareObjects = (obj1, obj2) => {
const c = Object.keys(obj1),
n = Object.keys(obj2);
return c.length === n.length && c.every((c) => obj1[c] === obj2[c]);
};
// Usage
compareObjects({ a: 1, b: 2 }, { a: 1, b: 2 }); // true
선택한 텍스트 가져오기
const getSelectedText = () => window.getSelection().toString();
// Usage
getSelectedText(); // Selected text
URL에서 쿼리 매개변수의 개체 가져오기
const getQueryParams = (url) => new URLSearchParams(url.split("?")[1]);
// Usage
getQueryParams("https://example.com?a=1&b=2"); // { a: "1", b: "2" }
숫자를 단어로 변환
1000000
와 같은 큰 숫자를 "1M"
로 변환합니다.const numToWord = (number) =>
number.toLocaleString("en-US", { notation: "compact" });
// Usage
numToWord(1000000); // "1M"
배열의 중복 수 계산
배열의 중복 수와 함께 객체를 반환합니다.
const countDuplicates = (c) => {
const t = {};
return c.forEach((c) => (t[c] = (t[c] || 0) + 1)), t;
};
// Usage
countDuplicates([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); // { 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1, 10: 1 }
깊이에서 트리 생성
일부 테스트 JSON이 필요한 경우 이 스니펫을 사용하여 깊이 트리
depth
를 생성할 수 있습니다.const generateTree = (depth) =>
[...Array(depth)].map(() => ({ tree: generateTree(depth - 1) }));
// Usage
generateTree(3); // [{ tree: [{ tree: [{ tree: [] }, { tree: [] }] }, { tree: [{ tree: [] }, { tree: [] }] }] }, { tree: [{ tree: [] }, { tree: [] }] }]
결론
그게 다야! 이 정보가 도움이 되었기를 바랍니다.
GitHub 및 에서 저를 찾으십시오.
Reference
이 문제에 관하여(시간을 절약할 수 있는 16개 이상의 JavaScript 스니펫), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/posandu/16-javascript-snippets-to-save-your-time-5hmc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)