后端传的是String类型而前端JS接收到的是Number类型,导致精度丢失

后端id通过雪花算法导致长度过长引起精度丢失


说明:本人是菜鸟只会后端一点都不会前端,所以慢慢学习,大佬勿喷有什么不对的请指正。
情景说明:后端的id通过雪花算法,导致id过长超过16位,接收到的id如果超过16位后,则后面显示的是0000 入1234567898765431000000000,因为JS处理整数的长度最高为16位,从而会引起这个问题

//按键点击的方法
actions.push('<a href="javascript: audit5('+row.id+')" class="btnLists1" title="${text('驳回')}" data-confirm="${text('确认要审核驳回该记录吗?')}"><i class="fa fa-remove"></i></a>&nbsp;');
//当我输出id的类型后,显示的是number类型
function audit5(id){
	console.log(typeof (id));
}

于是我经过不断的查找,用过id.toString()也不行,各种都测试过了,最后看到一个大佬的文章终于解决了 请看按键点击的方法有什么不同

  	actions.push('<a href="javascript: audit5(\''+row.id+'\')" class="btnLists1" title="${text('驳回')}" data-confirm="${text('确认要审核驳回该记录吗?')}"><i class="fa fa-remove"></i></a>&nbsp;');

是的 没错 在这边传给事件的方法这里 本来是

audit5('+row.id+')  ==>  audit5(\''+row.id+'\')" //获取的id前面和后面分别加一个\' 

就此 完美解决。因为刚接触到前端,所以有些专业术语还有表达不太流程,说的不太明白,希望大家理解 谢谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值