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