一、Number
Number 是对应数值的引用类型。要创建一个 Number 对象,就使用 Number 构造函数并传入一个 数值
1. 创建一个数字
// 通常情况下变量创建一个数字
var num = 10;
console.log(typeof num); //number
// 使用Number构造器创建一个数字
var num2 = new Number(12.62);
console.log(typeof num2); //object
//访问它的数值
console.log(num2.valueOf()); //获取对象的初始值
2.number和object(Number)之间的转换
2.1 number 👉 object(Number)
var num = 10;
num = new Number(num)
console.log(typeof num); //object
2.2 object(Number) 👉 number
//1. 通过初始值获取
let num1 = new Number(123.465) //或者 new Number("123.456");
num1 = num1.valueOf();
console.log(typeof num1); // number
//2.通过Number静态方法parseFlot() 或者parseInt(不建议,因为会损失精度)
let num2 = new Number(12.42) //或者 new Number("12.42");
num2 = Number.parseFloat(num2);
console.log(typeof num2); // number
//3.通过toString + parseFlot()
let num3 = new Number(13.22);
num3 = Number.parseFloat(num3.toString()); //或者 num3.toString()*1
console.log(typeof num3); // number
toFixed()
作用 : 自动舍入的特点可以用于处理货币
参数:整数需要保存的小数位数
返回值: 指定位数的字符串数字采用是正整数的四舍五入
不过要注意的是,多个浮点数值的数学计算不一定 得到精确的结果。
比如,0.1 + 0.2 = 0.30000000000000004。
(0.1+0.2).toFixed(2) // 0.30 "string"
二、Math算数对象
Math(算数)对象的作用是:执行常见的算数任务。
Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。
1.Math 对象使用
Math.属性/方法
例如:
Math.PI //属性
Math.random() //方法
2.Math 对象属性
属性 | 描述 |
返回算术常量 e,即自然对数的底数(约等于2.718)。 | |
返回 2 的自然对数(约等于0.693)。 | |
返回 10 的自然对数(约等于2.302)。 | |
返回以 2 为底的 e 的对数(约等于 1.4426950408889634)。 | |
返回以 10 为底的 e 的对数(约等于0.434)。 | |
返回圆周率(约等于3.14159)。 | |
返回 2 的平方根的倒数(约等于 0.707)。 | |
返回 2 的平方根(约等于 1.414)。 |
3.Math 对象方法
方法 | 描述 |
返回 x 的绝对值。 | |
返回 x 的反余弦值。 | |
返回 x 的反正弦值。 | |
以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 | |
返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 | |
对数进行上舍入。 | |
返回数的余弦。 | |
返回 Ex 的指数。 | |
对 x 进行下舍入。 | |
返回数的自然对数(底为e)。 | |
返回 x,y,z,...,n 中的最高值。 | |
返回 x,y,z,...,n中的最低值。 | |
返回 x 的 y 次幂。 | |
返回 0 ~ 1 之间的随机数。(不包括 1) | |
四舍五入。 | |
返回数的正弦。 | |
返回数的平方根。 | |
返回角的正切。 |
4.Math中舍入法
接下来是用于把小数值舍入为整数的 4 个方法: Math.ceil() 、 Math.floor() 、 Math.round()和 Math.fround() 。
- Math.ceil() 方法始终向上舍入最为接近的整数 (给整数+1,去掉小数部分)
- Math.floor() 方法始终向下舍入最为接近的整数 (出掉小数部分)
- Math.round()方法四舍五入(但是在负数时候会出现点问题 向最靠近的位数加 1)
- Math.fround()方法返回数值最接近的单精度(32位)浮点值表示
扩展: isNaN
isNaN() 作用:是否不是一个数字
参数:需要检测的变量或者是表达式
返回值:true : 传入的参数 不是一个数字
false: 传入的参数 是一个数字
NaN 类型为number;(NaN : not a number)
var a = "a";
console.log(a/15) //NaN;
cosole.log(isNaN(a/15)) // ture;
无奈源于不够强大