JS数学处理

256 阅读3分钟

JS数学处理中常用的API

圆周率 - Math.PI

生成随机数 - Math.random()

生成0~1之间的随机小数,通常在实际项目中需要获取到一个范围内的随机整数,利用这个随机小数封装一个获取范围内的随机整数的函数 例如:

function getRandom(a,b){
	var max = a;
    var min = b;
    if(a<b){
    	max = b;
        min = a;
    }
    return parseInt(Math.random() * (max - min)) + min
}

向上取整数 - Math.ceil(1.6)此时取值为2

向上取整的含义是一个数字的小数部分不够1,将他处理成1。例如:10条数据每页展示3条,前3页都能放3条数据,但是第4页只能放1条数据,虽然占不满1页,但也要占1页

向下取整 - Math.floor(1.6)此时取值为1

向下取整跟parseint()同义,只取整数部分,舍去小数部分得到整数

四舍五入 - Math.round(1.6)取值为2,Math.round(1.3)取值为1

求次方 - Math.pow(2,3) 2的3次方,参数1是底数,参数2是幂数

开平方根 - Math.sqrt(6) 取值为2.45

绝对值 - Math.abs(-1),绝对值为1,Math.abs(1),绝对值也为1

最大值 - Math.max(1,4,6,2,7,9),最大值为9

最小值 - Math.min(1,4,6,3,6,8),最小值为1

正弦 - Math.sin(Math.PI*30/180) 取值为 0.5

余弦 - Math.cos(Math.PI*60/180) 取值为 0.5

进制的转换

语法书写:10进制数字.toDtring(进制数) 例如:
vat a = 9
a.toString(2)转为2进制
a.toString(8)转为8进制

其他进制转换10进制语法书写:parsenit(数据,进制数) 例如:

var a = '9'
parsenit(a,2)表示把a这个二进制的字符转为十进制
parsenit(a,8)表示a这个八进制的字符转为十进制

时间日期处理

js提供了一个构造函数Date,用来创建时间日期对象。所以跟时间日期有关的操作都是通过时间日期对象来操作的。

时间日期对象创建,创建好的是一个对象,但是当输出的时候被浏览器自动转为字符串输出了。获取到的是当前本地的时间日期对象。如果把本地的时间日期改掉,获取到的时间日期对象会随着本地时间变化。

当前时间的时间日期对象

var date = new Date()
console.log(date) // Tue Jul 30 2019 21:26:56 GMT+0800 (东八区中国标准时间)

指定的时间日期对象

var date = new Date("年-月-日 时:分:秒") // 也可以是英文版的时间字符串 - Sun May 13,2016
var date = new Date(年,月-1,日,时,分,秒)
var date = new Date(时间戳)

获取具体的时间日期

通过时间日期对象可以获取到具体的年月日时分秒,甚至毫秒和时间戳
date.getFullYear(); // 获取到完整的时间日期对象中的年份
date.getMonth(); // 获取到时间日期对象中的月份 - 这里的月份是通过0~11来描述1~12月的
date.getDate(); // 获取到时间日期对象中的日
date.getDay(); // 获取时间日期对象中的星期几
date.getHours(); // 获取到时间日期对象中的时
date.getMinutes(); // 获取到时间日期对象中分
date.getSeconds(); // 获取到时间日期对象中的秒
date.getMilliseconds(); // 获取到时间日期对象中的毫秒 - 1秒=1000毫秒
date.getTime(); // 获取到时间日期对象对应的时间戳

时间戳格林尼治时间1970年1月1日0点0分0秒到现在走过的毫秒数。利用时间戳可以方便计算时间,例如:计算100天以前是几月几号。

获取时间戳(格林威治时间/格林尼治时间):

Date.parse("2015-08-24") // 获取1970年到设定时间的毫秒数
new Date().getTime()
+new Date()
<h3>设置时间日期</h3>

通过时间日期对象,可以将其中的年月日时分秒进行设置,改变时间日期对象的时间。星期几是不能设置的,是根据年月日生成的.

date.setFullYear(年份); // 设置时间日期对象中的年份
date.setMonth(当前月份-1); // 设置时间日期对象中的月份 - 这里的月份是通过0~11来描述1~12月的
date.setDate(日); // 设置时间日期对象中的日
date.setHours(时); // 设置时间日期对象中的时
date.setMinutes(分); // 设置时间日期对象中分
date.setSeconds(秒); // 设置时间日期对象中的秒
date.setMilliseconds(毫秒); // 设置时间日期对象中的毫秒
date.setTime(时间戳); // 设置时间日期对象对应的时间戳 - 直接用时间戳就能将时间日期对象中的年月日时分秒全部改变

日期格式化

``` date.toLocalString();//本地风格的日期格式 date.toLocaleDateString(); // 获取日期 date.toLocaleTimeString(); // 获取时间 ```