有趣的JS代码
原创小于 1 分钟有趣的代码有趣的代码
打开控制台,无限debugger,禁止调试
function debug() {
function block() {
if (
window.outerHeight - window.innerHeight > 200 ||
window.outerWidth - window.innerWidth > 200
) {
document.body.innerHTML = `<div style="width:100vw;height:100vh;background-color:black;opacity:0.6;display:flex;align-items:center;justify-content:center;">
<h1 style="color:red;text-align:center;font-size:36px;">检测到非法调试,请关闭后刷新重试!</h1></div> `;
}
setInterval(() => {
(function () {
return false;
})
['constructor']('debugger')
['call']();
}, 50);
}
try {
block();
} catch (err) {}
}
export default debug;
更加全面的禁止控制台 使用 disable-devtool
- 安装 disable-devtool
pnpm i disable-devtool -D
- main.js 中引入,然后调用方法执行.
import disableDevtool from 'disable-devtool';
DisableDevtool({
disableMenu: false,
});
最简单的深拷贝
// 将原始对象传递给该函数, 它将返回一个具有不同引用和对象属性引用的深层副本
const obj = { name: 'Mike', friends: [{ name: 'Sam' }] };
const clonedObj = structuredClone(obj);
console.log(obj.name === clonedObj); // false
console.log(obj.friends === clonedObj.friends); // false