跳至主要內容

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

json 转 jsonl

下载

import json
import sys
from pathlib import Path


def json_to_jsonl(input_path: str, output_path: str):
    input_file = Path(input_path)
    output_file = Path(output_path)

    if not input_file.exists():
        print(f"❌ 输入文件不存在: {input_file}")
        return

    with open(input_file, "r", encoding="utf-8") as f:
        data = json.load(f)

    # 如果文件不是列表类型,直接包一层
    if not isinstance(data, list):
        data = [data]

    with open(output_file, "w", encoding="utf-8") as f:
        for item in data:
            f.write(json.dumps(item, ensure_ascii=False) + "\n")

    print(f"✅ 已转换完成: {output_file} (共 {len(data)} 行)")


if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("用法: python json_to_jsonl.py 输入文件.json 输出文件.jsonl")
        sys.exit(1)

    json_to_jsonl(sys.argv[1], sys.argv[2])