记一次js长数值类型精度失真导致的问题

需求大概就是后端传给前端一个id,然后前端再使用这个id调接口进行登录联调过程中发现使用后端传过来的id再去登录的时候竟然登录失败了,查了半天发现前端拿到的id值与系统中查到的并不一致,不同的用户一部分正常,一部分用户id与系统中查到的值相差+2区间内。查看控制台发现了更诡异的事情:response和preview的值竟然不一样看到接口返回的是number类型,想着如果把接口返回改成string类型应该就不会出问题了。但是有问题了就得找找原因嘛,查了一通资料下来,原因简单描述就是因为: JavaScript的Number是双精度浮点数,它可以表示的最大安全范围是正负9007199254740991,也就是2^53-1。 当超出这个数值时,就无法保证准确性了大概就是number类型的数据,9开头且length超过16位就可能会出问题了。返回到问题中看, ...

node install –unsafe-perm 的作用?

用 puppeteer 做服务端截图的接口时,发现部署在远端机器上时老是接口报错,然后发现报这下图的错误,搜索相关解决方案时 https://github.com/puppeteer/puppeteer/issues/3443 发就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root ...

css variable实战

现在css预处理器是项目的标配,感觉用不到 css variable 这个特性,之前对它的了解大概局限于跟 :root{} 有关系,但是直到看到vantui小程序文档时看到这样的介绍:貌似是一座小金矿...什么是css变量带有前缀--的属性名,比如--example--name,表示的是带有值的自定义属性,其可以通过 var 函数在全文档范围内复用的一般来说css变量(CSS variable)要与 var( ...

攻略Chrome-devtools

Console 面板 此章节请打开 devtools/console/console.html 一起食用 一方面用来记录页面在执行过程中的信息(一般通过各种 console 语句来实现),另一方面用来当做 shell 窗口来执行脚本以及与页面文档、DevTools等进行交互 首先看一下console对象下面都有哪些方法: console.clear 顾名思义, ...