跳到主要内容

前端

如何解决 JavaScript 大整数精度丢失问题

关于这个大精度丢失问题,一开始我还没在意,直到上班碰到了这个问题,当时记得在处理后端返回的大整数拿到一个超过 js 精度的 id 时,怎么传值都对不上,后面通过打印检查对比发现,我拿到的 id 跟我所获取到的不一致,当时还不知道是什么情况,后面上网搜索才知道这是属于一个精度丢失问题。 那原因是什么呢? 经过查询知道 JS 的 Number 类型遵循 IEEE754 标准,最大安全整数是 2^53 - 1。 再大的数字会被强制四舍五入,导致精度丢失。 那我为了避免这种情况,后续在 JSON 解析和对象处理阶段,手动把大整数转换为字符串。下面是我这边写的一个工具方法。 问题示例:精度丢失 #后端返回:
Javascript 前端 大整数精度

ElementUI 级联组件实现自定义输入和模糊搜索

记录一下工作中碰到的需求,对于新手小白碰到这种情况可以参考,高手的话还有很多更好的办法。哈哈。 对于这个需求一开始是很懵的,想到 Element UI 里面有个级联组件,但是这个级联组件不支持自定义输入数据,这个就很烦。于是我在网上搜索,看到了这样一篇文章给了我思路。文章链接在下面可以进行查看。 参考文章:接世界毁灭 - CSDN 博客 我试着用该博主的思路,用文本框套一个级联框,然后触发级联组件的点击事件,这样既能有级联效果也有自定义效果。 <li @click="toggleCascaderExpansion" style="width:90%"> <el-input placeholder="请选择原因" type="textarea" :row="1" style="width:100%;font-size:14px;display:inline-block;z-index:99;" v-model.sync="addOrEditForm.biztype" @input="onBizTypeInput"> </el-input> <el-cascader :props="{ multiple: true, checkStrictly: true, value:'id', label:'label' }" filterable :filter-method="filterMethod" placeholder="请选择原因" style="width:100%;font-size:14px;display:flex;margin-top: -40px;opacity: 0;height:40px" v-model.sync="addOrEditForm.firstbiztype" :options="biztypeList" @change="handleBizTypeChange" ref="cascaderRef"> </el-cascader> </li> 一开始我用 ref 去触发级联组件的下拉框展开事件,发现没效果,后面我测试了很多方法,用下面这个就可以触发。大家可以参考我这个写法。
Vue.js Elementui 前端