跳至主要內容

有趣的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

  1. 安装 disable-devtool pnpm i disable-devtool -D
  2. 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