let 与 var 在 for 循环中的区别 场景今天遇到的一个很有趣的问题,下面两段 js 代码执行的结果是什么? 123for (let i = 0; i < 3; i++) { setTimeout(() => console.log(i), 0)} 和 123for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 0)} 嗯,乍看之下
JavaScript 禁止用户保存图片 场景在业务需求中不希望用户保存图片,因为是一些供内部使用的图片。 思路 添加事件禁止选择、拖拽、右键(简单的禁止用户保存图片,但无法阻止用户打开控制台查看,或是直接抓包) 将之转换为 canvas(让浏览器认为不是图片以此禁止用户对之进行图片的操作,但无法阻止抓包) 禁止用户使用控制台查看源码(阻止浏览器打开控制台,但无法阻止抓包) 传输图片使用自定义格式(可以阻止抓包,但需要后台配合) 注:
TypeScript 函数根据第一个参数推导后面参数的类型 问题在编写一个重载函数时,吾辈发现了 ts 的方法签名问题。 12345678910111213141516171819enum TypeEnum { A, B,}type A = { a: string}type B = { b: number}//region 普通参数function fn1(type: TypeEnum.A, obj: A): voidfunction fn1(ty
JavaScript 微任务/宏任务踩坑 场景 SegmentFault 在使用 async-await 时,吾辈总是习惯把它们当作同步,终于,现在踩到坑里去了。使用 setTimeout 和 setInterval 实现的基于 Promise 的 wait 函数,然而测试边界情况的时候却发现了一些问题! 实现代码 12345678910111213141516171819202122/** * 等待指定的时间/等待指定表达式成立 *