// Web API, 不适合 node 环境
const copyToClipboard = (text) => navigator.clipboard.writeText(text);
copyToClipboard("Hello World");
// Web API, 不适合 node 环境
const removeTag = (fragment) => {
new DOMParser().parseFromString(fragment, "text/html").body.textContent || "";
};
console.log(removeTag("<div>Hello world</div>"));
// 获取某个日期位于当年的第几天
const dayOfYear = (date) =>
Math.floor(date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24;
console.log(dayOfYear(new Date(2024, 8, 19)));
// 将 rgb 颜色灰度化(基于光感加权平均)
const gray = (r, g, b) => 0.2126 * r + 0.7152 * g + 0.0722 * b;
console.log(gray(50, 100, 150));
// 解析 url 中的参数
const parseQuery = (url) => {
let q = {};
url.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => (q[k] = v));
return q;
};
console.log(parseQuery("http://baifu.com/?a=1&b=2"));
// 更加现代的方法:
console.log(new URL("http://baifu.com/?a=1&b=2").searchParams);
// 筛选对象属性
const pick = (obj, ...props) =>
Object.fromEntries(Object.entries(obj).filter(([k]) => props.includes(k)));
console.log(pick({ a: 1, b: 2, c: 3 }, "a", "b"));
// 随机 HEX 颜色,不兼容 IE
const randomColor = () =>
"#" +
Math.floor(Math.random() * 0xffffff)
.toString(16)
.padEnd(6, "0");
console.log(randomColor());