前端工作学习和收获记录

76 阅读1分钟

2023

2023.12.18 - 2023.12.24

  1. Decimal.js

在pos项目中开发商品模块时,遇到展示商品价格的逻辑,需要保留两位小数,看到同事使用到了decimal.js这个库 npm - decimal.js

查了一下,在js中涉及到一些金额计算时,对于精度要求比较高,对于有些计算,js可能会出现错误,例如

image.png

decimal.js是使用的二进制来计算的,所以可以更好地实现格化式数学运算,对数字进行高精度处理;使用decimal类型处理数据可以保证数据计算更为精确,还可以节省储存空间。

2024

2024.01.08 - 2024.01.12

  1. 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、网页翻译插件

image.png

沉浸式中文翻译-官网

2、dust

dust - 使用 rust 实现,du+rust = dust,更直观的 du 命令。默认行为,以找到最大文件为第一选择。

image.png