一,Math
(一),概念
Math是js内置的一个对象
其中有很多属性和方法都跟数学相关
(二),属性
Math.PI // π 圆周率
console。log( Math.PI ); // 3.141592653589793
(三),方法
1,Math.random() - 获取随机数
获取到了一个0~1之间的随机的小数,这个随机数最小是0,最大不可能是1,{ [0,1) } 左闭右开
//在js调用的时候,也可能会先传入大的数,也有可能先传小的数,需要在函数中先进形处理
function getRandom(a,b){
// 先找到a和b之间的大数和小数
var max = a
var min = b
// 先假设最大值为a,最小值为b
if(b>a){
// 接着进行判断 如果假设不成立,则交换赋值
max = b
min = a
}
return parseInt(Math.random()*( max - min)) + min
}
var n = getRandom(50,30)
console.log(n) // 返回一个30到50之间的随机整数
2,Math.ceil(要取整的数字) - 向上取整
向上取整的是只会入不会舍
var num = 3.14
console.log ( Math.ceil(num) ) // 4
3,Math.floor(要取整的数字)
只会舍不会入
var num = 3.999
console.log( Math.floor(num) ) // 3
4,Math.round(要取整的数字)
四舍五入
var num = 3.14
console.log(Math.round(num)) // 3
var num = 3.999
console.log(Math.round(num)) // 4
5,Math.abs(插入数字) - 求绝对值
不管是正数还是负数一定要得到正数
var num = -5
console.log( Math.abs(num) ); // 5
var num = 5
console.log( Math.abs(num) ); // 5
var num = -5.123456
console.log( Math.abs(num) ); // 5.123456
var num = 5.456789
console.log( Math.abs(num) ); // 5.456789
6.Math.pow(底数,幂数)
2的3次方,2底数,3是幂
var num = Math.pow(2,3)
console.log(num) // 8
7,Math.sqrt(插入一个数字)
开根号
var num = Math.sqrt(9)
console.log(num) // 3
8,Math.max(一串数字)
var num = math.max(1,9,57,4,2,3,8)
console.log(num) // 57
9,Math.min(一串数字)
var num = math.min(1,9,57,4,2,3,8,'ASDF',[1,2,3])
console.log(num) // NaN
10.Math.sin(弧度,[不是角度]) - 正弦
正弦:直角三角形,如果一个角是30度,30度的角对面的那个边是斜边的一半
30度的正弦,是1/2 - 角度对应的边跟斜边的比例
弧度跟角度进行换算 - 1弧度指的是一个半径的长度
[当 角度 为 30度 时]
弧度 = 角度 * 2π / 360 = 60π / 360 = π / 6
var res = Math.sin(30 * 2 * Math.PI / 360)
console.log(res) // 0.5
11,Math.cos(角度对应的弧度) - 余弦
余弦:角度相邻的直角边跟斜边的比例
var res = Math.cos(60 * 2 * Math.PI / 360)
console.log(res) // 0.5
二,进制间转换
(一),10进制数字.toString(目标进制)
10进制转其他进制的方法
返回值:返回转成目标进制后的数字,且一字符串的形式显示
var num = 5
// 转成2进制
var res = num.String(2)
console.log(res) // 101
var num = 12
// 转成16进制
var res = num.toString(16)
console.log(res) // c
// 16进制 [个位数 每逢16进1]【1,2,3,4,5,6,7,8,9,a,b,c,d,e,f】
(二),parseInt(其他进制数字,将这个数字当成多少进制看)
其他进制转成10进制
一般第二个参数不填,默认第二个参数是10,将被转换的数据当成10进制看待了
var num = '11'
var res1 = parseInt(num, 2) // 2进制转10进制 // 3
var res2 = parseInt(num, 8) // 8进制转成10进制 // 9
var res3 = parseInt(num, 16) // 16进制转成10进制 // 17
console.log(res1)
三,Date
(一),创建日期对象
所有关于日期的操作,都需要使用日期对象来操作
利用系统提供的构造函数:Date来创建
var date = new Date()
// 这个对象是专门用于操作时间日期的,在输出的时候,默认会以字符串的形式显示
console.log(date);
new Date() 获取到的是当前时间的日期对象 - 是客户端时间 - 是自己计算机上的时间,如果我们修改自己计算机的时间后,获取到的时间也会发生变化
(二),获取具体的时间
// 从时间日期对象中获取具体的时间
var date = new Date()
// 获取年份 - 对象.getFullYear()
var year = date.getFullYear()
// 获取月份 - 对象.getMonth()
// 在对象中,使用0-11来描述1~12月
var month = date.getMonth()+1
// 因为获取到的月份会比实际月份小1,使用通常会用 +1 表示
// 获取日 - 对象.getDate()
var d = date.getDate()
// 由于上面已经用date 作为变量名了 ,所有这里不能用date作为变量名来获取日
// 获取星期 - 对象.getDay()
var day = date.getDay()
// 获取时 - 对象.getHours()
var hour = date.getHour()
// 获取分 - 对象.getMiuntes()
var minute = date.getMinutes()
// 获取秒 - 对象.getSeconds()
var second = date.getSeconds()
// 获取毫秒 - 对象.getMilliseconds - 1s === 1000ms
var mill = date.getMilliseconds()
获取时间戳
获取时间戳:比如从1970年1月1日8点0分0秒到现在所走过的时间用毫秒数来描述之间时间差
语法:对象.getTime()
var time = date.getTime()
console.log(time)
运用途径:在很多情况下,我们需要对时间进行计算的,运用减法运算
比如: 2022年10月1日 - 2022年3月18日
就相当于 国庆的时间戳 - 当前的时间戳 = 毫秒数 【接着可以转化为天数表现出来】
(三),设置时间
- 通过时间日期对象设置时间
var date = new Date()
获取当前时间对象- 设置时间 == 可以看做 将这个时间的对象变成另外一个时间的对象
- 设置年份:
对象.setFullYear(目标年份)
- date.setFullYear(2023)
- 设置月份:
对象.setMonth(目标月份)
– 0 ~ 11来描述1 ~ 12个月- date.setMonth(4)
- 参数是0~11 ;参数会比实际月份少1
- 设置日:
对象.setDate(目标日)
- date.setDate(25)
- 设置时:
对象.setHours(目标时)
- date.setHours(15)
- 设置分:
对象.setMiuntes(目标分)
- date.setMinutes(50)
- 设置秒:
对象.setSeconds(目标秒)
- date.setSeconds(59)
- 设置毫秒:
对象.setMilliseconds(目标毫秒数)
- date.setMilliseconds(500)
- 通过设置具体的时间,时间日期对象就发生了变化
- 通过设置后的对象来获取具体的时间
console.log( date.getMilliseconds())
// 500- 注意: 在设置时间中,没有设置星期机,因为星期几是根据年月日生成的,是不能被设置的
获取时间戳
1.时间日期对象.getTime()
2.在new前面放 +
var date = += new Date()
console.log(date);
将 + 后面的字符转成数字
var a = '15'
console.log(a)
console.log( +a )
3.利用构造函数Date : Date.parse('年-月-日 时:分:秒')
var guoqing = Date.parse('2022-10-1')
console.log(guoqing)
(四),格式化输出时间
// 正常情况下,我们在输出时间日期对象的时候,看起来特别不好看
console.log( new Date() )
var date = new Date()
// 转成更加方便看的时间显示 - 格式化输出时间
// 格式化整个年月日时分秒
var str = date.toLocaleString()
console.log(str) // 输出当前的年月日时分秒
// 格式化年月日
var str1 = date.toLocaleDateString()
console.log(str1) // 输出当前的年月日
// 格式化时分秒
var str2 = date.toLocaleTimeString()
console.log(str2) // 输出当前的时分秒