一.关于Math
序言:
用来处理数学问题不需要创建对象直接类型名.方法:Math.方法()
1.随机数random
2.取整方法round,ceil,floor
3.绝对值abs
Math.abs()是返回一个数的绝对值
4.最大值Max
5.最小值min
Math.min()
得到的是你传入的几个数字之中最大的那个数字
console.log(Math.min(1.2.3.4))//1
6.Math的对象方法
下面展示一些 内联代码片
。
Math的对象部分示例
var randNum = Math.random() //0-1之间随机数
// console.log('randNum :',randNum)
// console.log('randNum :' + randNum)
// console.log(`randNum :${randNum}`)
var num = 98.4
console.log('parseInt(num) :', parseInt(num) ); //取整
console.log( 'Math.ceil(num) : ', Math.ceil(num) );
console.log( 'Math.floor(num) : ', Math.floor(num) );
console.log( 'Math.round(num) : ', Math.round(num) );
var num1 = -98
console.log( 'Math.abs(num1) : ', Math.abs(num1) );
console.log('Math.max() :', Math.max(89,79,99));
下面展示一些 内联代码片
。
计数器对象
function getRandomNum() {
var numObj = {} //计数器对象
for (var i = 0; i < 10000; i++) {
var randNum = Math.floor(Math.random() * 10) // 0~10
//判断计数器对象有没有此随机数,如果没有,放到对象中,值赋值给1,如果有, 值加一
if (numObj[randNum]) {
//已经存在
numObj[randNum]++
} else {
//不存在
numObj[randNum] = 1
}
}
for(var key in numObj){
console.log(`${key} : ${numObj[key]}`);
}
}
getRandomNum()
下面展示一些 内联代码片
。
工具函数
// console.log( ' Math.random() * 10 + 10 ', (Math.random() * 10 + 10));
function getRandom(x, y) {
var m = Math.min(x,y)
var n = Math.max(x,y)
return Math.floor(Math.random() * (n - m) + m)
}
var randomNum = getRandom(500, 100)
console.log(randomNum);
二.数字转换进制
1.进制
下面展示一些 内联代码片
。
数字转换进制示例
var num = 0xA
var num1 = 010
console.log(num, num1);
// 十进制->其它进制
var num2 = 100
console.log( 'num2.toString(2) :', num2.toString(2) );
console.log( 'num2.toString(8) :', num2.toString(8) );
console.log( 'num2.toString(16) :', num2.toString(16) );
// 其它进制 -> 十进制
var str = 100
console.log('parseInt(str,2) :', parseInt(str,2) );
2.示例随机颜色
下面展示一些 内联代码片
。
随机颜色示例
function getRandom(x, y) {
var m = Math.min(x, y)
var n = Math.max(x, y)
return Math.floor(Math.random() * (n - m) + m)
}
function setBakctroundColor() {
var r = getRandom(0, 256)
var g = getRandom(0, 256)
var b = getRandom(0, 256)
var bg = `rgb(${r}, ${g}, ${b})`
console.log(bg);
//设置背景颜色给div
document.querySelector('div').style.backgroundColor = bg
}
/*
十六进制
*/
function setBackgroundColorTwo(){
var r = getRandom(0, 256) //123 => F1
var g = getRandom(0, 256) // 34 => 15
var b = getRandom(0, 256) // 125 => B2
// #F115B2
var r16 = r.toString(16)
var g16 = g.toString(16)
var b16 = b.toString(16)
var bgValue = `#${r16}${g16}${b16}`
console.log(bgValue);
//设置背景颜色给div
document.querySelector('div').style.backgroundColor = bgValue
}
setBackgroundColorTwo()
三.关于Date
1.创建时间日期对象new Date()
2.new Date() 传递的参数多种方法
3. new Date()的常用的方法
a.getFullYear
b.getMonth
c.getDate
d.getHours
e.getMinutes
f.getSeconds
g.getDay
h.getTime
注:(格林威治时间):1970年1月1日00:00:00是计算机时间原点所有计算机都遵从这个原则
下面展示一些 内联代码片
。
Date常用方法示例
var time = new Date() //当前时间
console.log('time.getFullYear() :', time.getFullYear())
console.log('time.getMonth() :', time.getMonth()+1)
console.log('time.getDate() :', time.getDate())
console.log('time.getHours() :', time.getHours())
console.log('time.getMinutes() :', time.getMinutes())
console.log('time.getSeconds() :', time.getSeconds())
console.log('time.getDay() :', time.getDay())
console.log('time.getTime() :', time.getTime())
4.日期时间格式化
下面展示一些 内联代码片
。
// 格式化时间日期案例
/*
格式化日期时间
*/
function formateCurrentDate() {
var time = new Date() //当前日期时间对象
var year = time.getFullYear() //年
var month = time.getMonth() //月
var date = time.getDate() //日期
var hours = time.getHours() //小时
var minues = time.getMinutes() //分钟
var seconds = time.getSeconds() //秒
//2021-12-02 15:24:49
var dateStr = `${year}-${month+1}-${date} ${hours}:${minues}:${seconds}`
return dateStr
}
var time = formateCurrentDate()
console.log(time);
5.格式化日期时间工具函数
下面展示一些 内联代码片
。
格式化时间日期工具函数示例
function dateFtt(fmt, date) {
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
S: date.getMilliseconds(), //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length)
);
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length == 1 ?
o[k] :
("00" + o[k]).substr(("" + o[k]).length)
);
return fmt;
}
//创建时间格式化显示
function formateDate() {
var crtTime = new Date(); //当前时间
// return dateFtt("yyyy-MM-dd hh:mm:ss", crtTime);
// return dateFtt("yyyy年MM月dd日 hh:mm:ss", crtTime);
// return dateFtt("yyyy/MM/dd hh:mm:ss", crtTime);
return dateFtt("yyyy年MM月dd日", crtTime);
}
var date1 = formateDate()
console.log(date1);
6.计算时间差
下面展示一些 内联代码片
。
计算时间差示例
var time1 = new Date('2019-01-01 00:00:00')
var time2 = new Date('2019-01-03 04:55:34')
var t1 = time1.getTime()
var t2 = time2.getTime()
var t3 = t2 - t1 // 相差毫秒数
// 相差的天,小时,分钟,秒
// 1天= 24小时 1小时= 60分钟 1分钟 = 60秒 1s = 1000毫秒
// 1天 = 24 * 60 * 60 * 1000
var day1 = t3 / (24 * 60 * 60 * 1000)
day1 = Math.floor(day1)
console.log(day1);
// 总相差毫秒数 - 相差天数的毫秒数 = 剩下相差小时分钟秒 毫秒数
var hourseSeconds = t3 - day1 * (24 * 60 * 60 * 1000)
var hourse = hourseSeconds/(60*60*1000)
hourse = Math.floor(hourse)
console.log(hourse);
//分钟和秒 毫秒数 = hourseSeconds - hourse * 60*60*1000
var minuesSeconds = hourseSeconds - hourse * 60*60*1000
var minue = minuesSeconds/(60*1000)
minue = Math.floor(minue)
console.log(minue);
例如:我们现在计算一下 2019-01-01 00:00:00 到 2019-01-03 04:55:34 的时间差
1.先获取两个时间点到 格林威治时间(1970年1月1日(00:00:00 GMT)) 的毫秒数
2.两个时间相减,得到两个时间点之间相差的毫秒数
3.毫秒转换成天
4.把我们计算的毫秒数换算成时间