Math.js 一个广泛的数学库

JavaScript099

Math.js 一个广泛的数学库,第1张

专门为 JavaScript 和 Node.js 提供的一个广泛的数学库。支持数字,大数字(超出安全数的数字),复数,分数,单位和矩阵。 功能强大,易于使用。

官网: https://mathjs.org/docs/index.html

https://github.com/josdejong/mathjs

Math.js 支持三种类型的数字:

import * as math from "mathjs"

0.1+0.2

math.format(math.chain(math.bignumber(0.1)).add(math.bignumber(0.2)).done())

0.2-0.1

math.format(math.chain(math.bignumber(0.2)).subtract(math.bignumber(0.1)).done())

0.1*0.2

math.format(math.chain(math.bignumber(0.1)).multiply(math.bignumber(0.2)).done())

0.1/0.2

math.format(math.chain(math.bignumber(0.1)).divide(math.bignumber(0.2)).done())

是的JavaScript起初并没有内置的模块系统,CommonJS社区为了使JavaScript可以提供一个类似Python、Ruby等的标准库,自己实现了一套API填补了JavaScript没有内置模块的空白。CommonJS规范本身涵盖了模块、二进制、Buffer、文件系统、包管理等内容,而NodeJS正是借鉴了CommonJS规范的模块系统,自身实现了一套非常易用的模块系统。CommonJS对模块的定义可分为三部分:模块引用(require)、模块定义(exports、module)、模块标识。模块引用:require函数用于引入外部模块到当前上下文中模块定义:exports导出当前模块的变量或方法,是唯一导出的出口。在模块中,还有一个module对象,它代表模块自身,且exports是module对象的属性。模块标识:就是传递给require方法的参数。在NodeJS中,每一个文件就是一个模块,其内部定义的变量是属于这个模块的,不会对外暴露,也就是说不会污染全局变量。因此以上math.js模块定义的PI常量不会作为全局变量存在,而是被包裹在NodeJS的模块包装器中,作为局部变量存在。math.js文件中通过exports对象导出该模块下的circle方法,在main.js文件中通过require方法引入了circle方法。