Skip to content

Releases: doly-dev/util-helpers

v4.12.9

21 Oct 02:26
Compare
Choose a tag to compare
  • chore: update unpkg entry

v4.12.8

14 Oct 07:02
Compare
Choose a tag to compare
  • chore: 类型调整

v4.12.7

05 Sep 13:52
Compare
Choose a tag to compare
  • refactor: 优化 numberToChinese 繁体字 decimal 的默认值为

4.12.6

31 Aug 07:07
Compare
Choose a tag to compare
  • refactor: 优化 parseIdCard 方法

v4.12.5

23 Aug 14:16
Compare
Choose a tag to compare
  • refactor: 优化转换有效数值逻辑
  • chore: 添加测试覆盖率徽章

v4.12.4

23 Aug 03:46
Compare
Choose a tag to compare
  • chore: 删除多余方法

v4.12.3

23 Aug 03:45
Compare
Choose a tag to compare
  • refactor: 数学计算对有效数值重新定义,兼容性更好 ⚠️

有效数值

即能通过 Number(value) 转为数字,且不能为 NaN

以下为有效数值:

  1. 数字: 1 -1 1e-2 1.312 0.1 Infinity
  2. 字符串: '1' '10e2' '-1' '0.1' '' ' ' ' 15' ' 15 '
  3. 其他类型: null new Date() [] new Array() true false

以下为无效数值:

  1. 字符串: '1a' '-12a' '10.2.2' '10e2.1'
  2. 其他类型: undefined [] {} Symbol() function(){} ()=>{}

计算说明

  • 四则运算的第二个参数都是有默认值(乘数和除数默认1,加数和减数默认0)
plus(); // NaN  0个参数时,被加数转换为 Number(undefined) NaN ,NaN+0 = NaN 。其他计算方法如果没有参数一样返回 NaN 。
plus(0.1); // 0.1  第二个参数,加数默认为 0
plus(true, null); // 1  Number(true) 转换为 1 , Number(null) 转换为 0 , 1+0=1

plus(undefined, 0.1); // NaN  第一个参数被加数转换为 Number(undefined) NaN ,NaN+0 = NaN 。其他计算方法如果第一个参数为无效数值一样返回 NaN 。
  • 参数中包含无效数值,返回NaN
plus('0.1', ' a'); // NaN
plus(true, {}); // NaN
plus(true, 0.1, Symbol()); // NaN

注意:如果第二个及后面的参数如果值为 undefined 取默认值,即乘除数取 1 ,加减法取 0 。

plus(0.1, undefined); // 0.1  
plus(0.1, undefined, 0.2, undefined); // 0.3  后面的 undefined 取默认值 0
times(0.1, undefined, 0.2, undefined); // 0.02  后面的 undefined 取默认值 1

v4.12.2

04 Aug 02:43
Compare
Choose a tag to compare
  • refactor: 优化有效数值判断方法

v4.12.1

02 Aug 07:08
Compare
Choose a tag to compare
  • feat: 新增 version 属性标识当前版本

v4.12.0

02 Aug 06:12
Compare
Choose a tag to compare

重要更新

  • feat: 规范数学安全计算参数有效数值 ⚠️

以下内容已过时,4.12.3 重新定义有效数值
以下内容已过时,4.12.3 重新定义有效数值
以下内容已过时,4.12.3 重新定义有效数值

什么是有效数值

  • 数据类型必须是 numberstring
  • string 类型不能为空字符串、空白符字符串,而且可以使用 Number(value) 转为数字,且不能为 NaN
  • number 类型不能为 NaN

以下是有效数值:

  • 数字: 1, -1, 1e-2, 1.312, 0.1, Infinity
  • 字符串: '1', '10e2', '-1', '0.1'

以下是无效数值:

  • 非数字字符串: '', ' ', '1a', '-12a', '10.2.2', '10e2.1'
  • 其他类型值: undefined, null, true, false, [], {}, new Date(), ...

注意:Number('') Number(' ') Number(new Date) Number(true) 等虽然可以返回数字,但都不是有效数值。因为它们分别是空字符串、空格字符串和非数字或字符串类型。