2023
2023.12.18 - 2023.12.24
- Decimal.js
在pos项目中开发商品模块时,遇到展示商品价格的逻辑,需要保留两位小数,看到同事使用到了decimal.js这个库
npm - decimal.js。
查了一下,在js中涉及到一些金额计算时,对于精度要求比较高,对于有些计算,js可能会出现错误,例如
decimal.js是使用的二进制来计算的,所以可以更好地实现格化式数学运算,对数字进行高精度处理;使用decimal类型处理数据可以保证数据计算更为精确,还可以节省储存空间。
2024
2024.01.08 - 2024.01.12
- document.createRange();
在pos项目中开发对账模块时,看到有个document.createRange()方法,看了一下,是页面底部有个文案,然后报过了一个antd的Tooltip组件,如果文案内容的实际长度超过文案的宽度,Tooltip就设置为true,如果没有超过,就正常展示文案,悬浮时Tooltip就不用展示。
/**
* 判断dom元素实际内容是否超出展示内容
* @param el dom元素(不能是inline元素)
*/
const isElementTextOverflow = (el: HTMLElement) => {
const range = document.createRange();
range.setStart(el, 0);
range.setEnd(el, el.childNodes.length);
const rangeWidth = Math.floor(range.getBoundingClientRect().width || 0);
return rangeWidth > el.offsetWidth || el.scrollWidth > el.offsetWidth;
};
好用的工具
1、网页翻译插件
2、dust
dust - 使用 rust 实现,du+rust = dust,更直观的 du 命令。默认行为,以找到最大文件为第一选择。