Math对象
源码下载Javascript引入内置对象Math主要是为了方便解决数学上的常见计算。数字、字符串、数组等类型对象,一边创建好以后才能调用其方法,Math不用创建,直接调用就可以 ,Math就是平方根sqrt、幂函数pow、正弦函数sin的一个集合。把函数集合名称Math在语法上定义为对象,把众多函数定义为对象的方法,说到这里你就应该知道如何使用数学函数, 对象.方法的形式,比如Math.pow(3,2)表示3的平方,Math.sqrt(5)表示5的平方根。
下面的代码示例是利用Javascript内置对象Math调用数学计算函数求解笛卡尔坐标系中两点间的距离。
8 //点1坐标 9 let x = 10,y = 12,z = 25; 10 //点2坐标 11 let a = 11,b = 9,c = 12; 12 //调用数学函数计算,幂函数Math.pow(),平方根函数Math.sqrt()。 13 let L = Math.sqrt(Math.pow(x-a,2)+Math.pow(y-b,2)+Math.pow(z-c,2)); 14 //保留两位小数 15 let X = L.toFixed(2); 16 17 //显示计算结果l 18 document.write(L); 19 document.write("<br>"); 20 //显示保留两位小数结果X 21 document.write(X); 22 document.write("<br>"); 23 //判断X数据类型 24 document.write(typeof X); 25 document.write("<br>"); 26 //判断X数据内容 27 document.write(X === "13.38"); 28 document.write("<br>");
体验测试
常识更改点1和点2的坐标值,观察计算结果的变化。
代码解析
第14行代码就是调用平方根和幂函数方法求解得到距离,计算结果是无限循环小数13.379088160259652,系统默认保留了15位有效数字。 第15代码用到了一个方法toFixed,该方法属于数字对象的方法,简单说,作用就是保留两位小数,具体来说数字对象执行 toFixed方法返回一个字符串类型数据13.38,数字对象本身数据在内存中的状态没变化。这里要注意字符串格式13.38和浮点格式13.38在内存中的状态是不一样的, 字符串每一个字符编码遵循UTF-8或其它专门针对字符的编码标准,Javascript数字类型数据编码遵循IEEE 754标准。
Math对象属性
属性符号 | 含义 | 数学表达 | 数值大小 |
E | 自然指数 | e | 2.71828.... |
LN2 | 2的自然对数 | ln2 | 0.69314.... |
LN10 | 10的自然对数 | ln10 | 2.30258.... |
LOG2E | 2为底数,e的对数 | log2e | 1.44269.... |
LOG10E | 10为底数,e的对数 | log10e | 0.43429.... |
PI | 圆周率 | π | 3.14159.... |
SQRT1_2 | 2的平方根倒数 | 1/√2 | 0.70710.... |
SQRT2 | 2的平方根 | √2 | 1.41421.... |
Math对象方法
以下方法不改变原来的变量,都是利用原来的数字生成一个新的数字重新赋值给任意变量。
方法 | 含义 |
abs(a) | 绝对值 |
asin(a) | 反正弦值 |
atan(弧度) | 反正切值 |
atan2(y,x) | 反正切值,点(x,y)与原点连线和正x轴呈现的夹角,逆时针为准 |
cos(弧度) | 余弦值 |
ceil(a) | 向上取整 |
floor(a) | 向下取整 |
round(a) | 四舍五入圆整 |
log(a) | a的自然对数 |
min(a,b) | 返回a、b较小的数 |
pow(a,n) | a的n次幂 |
random() | 生成随机数,区间[0,1] |
sin(弧度) | 正弦值 |
tan(弧度) | 正切值 |
acos(a) | 反余弦值 |
sqrt(a) | 平方根 |
圆整方式比较
小数 | ceil | floor | round |
1.2 | 2 | 1 | 1 |
1.4 | 2 | 1 | 1 |
1.5 | 2 | 1 | 2 |
1.6 | 2 | 1 | 2 |