一. Math对象
一般用来执行js中的数学运算
Math对象的方法
Math.PI 圆周率
Math.random() 获取随机数字 [0,1)
Math.min(a,b) a和b中取小值
Math.max(a,b) a和b中取大值
Math.ceil(x) 把x上取整
Math.floor(x) 把x下取整
Math.round(x) 把x四舍五入
Math.abs(x) 取x的绝对值
Math.sin(x) 求x的正弦值
Math.cos(x) 求x的余弦值
Math.tan(x) 求x的正切值
Math.pow(x,y) 求x的y次方
Math.sqrt(x) 求x的平方根
1. Math对象
Math是js的内置对象,可以直接使用,
检测Math是不是一个对象
console.log(typeof Math);
2.方法的使用
2.1 常用属性方法
// 获取圆周率 Math的属性PI
console.log(Math.PI);
// Math的方法
// 1.随机数[0,1)
console.log(Math.random());
// 2.获取最小值,返回参数最小值
// 如果传入的参数不是数字类型,会转为数字类型,转不了也就比不来最小返回NaN
// 可以传一个参数
// 不传参为Infinity
console.log(Math.min(10,20,30,50))
// 3.获取最大值,返回参数最大值
// 可以传一个参数
// 不传参为-Infinity
console.log(Math.max(10,20,30,50));
// 4.向上取整
// 正常返回整数
// 接受一个参数,如果有多个参数,自动忽略后面的
// 如果传入的不是数字类型,隐式转换数字类型,转不了NaN
// 不传参,返回NaN
console.log(Math.ceil(2.3));
// 4.向下取整
// 正常返回整数
// 接受一个参数,如果有多个参数,自动忽略后面的
// 如果传入的不是数字类型,隐式转换数字类型,转不了NaN
// 不传参,返回NaN
console.log(Math.floor(2.3));
// 5.四舍五入
// 正常返回整数
// 接受一个参数,如果有多个参数,自动忽略后面的
// 如果传入的不是数字类型,隐式转换数字类型,转不了NaN
// 不传参,返回NaN
console.log(Math.round(2.3));
// 6.绝对值
// 正常返回正数
// 接受一个参数,如果有多个参数,自动忽略后面的
// 如果传入的不是数字类型,隐式转换数字类型,转不了NaN
// 不传参,返回NaN
console.log(Math.abs(2.3));
2.2 其他方法
// 1. 求正弦值
// Math.sin(弧度值)
console.log(Math.sin(Math.PI/6));
// 2. 求余弦值
// Math.cos(弧度值)
console.log(Math.cos(Math.PI/6));
// 3. 求正切
// Math.tan(弧度值)
console.log(Math.tan(Math.PI/6));
// 4. x的y次幂
// Math.pow(x,y) x的y次方
// 接受两个参数,传入多个忽略后面的
// 只传一个参数或不传就是NaN
// x,y支持负数
console.log(Math.pow(x,y));
// 4. 开方
// Math.sqrt(x)
// 接受一个参数,传入多个忽略后面的
// 其他数据类型会转数字类型,转不了为NaN
// 不传就是NaN
console.log(Math.sqrt(x) );
例子:
四位随机验证码
function unique(){
var str = "0123456789abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ";
var newStr = ""
for(var i = 0; i < 4; i++){
newStr += str[parseInt(Math.random()*str.length)];
}
return newStr;
}
function unique(){
var str = "0123456789abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ";
var newStr = ""
for(var i = 0; i < 4; i++){
var randow = parseInt(Math.random()*str.length);
if(newStr.indexOf(str[randow]) !== -1){
i--;
continue;
}else{
newStr += str[randow];
}
}
return newStr;
}
二. 日期对象 Date
日期对象是JS中提供的用于控制年份.日期.时间.的对象
1. 创建日期对象
Date是js内置的构造函数,使用前,先通过new操作符构造一个日期对象出来
var date = new Date();
console.log(date); // Fri Apr 26 2019 15:14:55 GMT+0800 (中国标准时间)
注意,这个获取时间不是实时的,是将此时此刻你获取的时间拍照报存在变量date中
2. 优化获取的时间
date.toLocaleString() ==> 获取本地日期字符串
date.toLocaleDateString() ==> 获取本地(年/月/日)形式的字符串
date.toLocaleTimeString() ==> 获取本地(时/分/秒)形式的字符串
2.1 本地日期格式
date.toLocaleString(); // "2019/4/26 下午3:17:33"
date.toLocaleDateString(); // "2019/4/26"
date.toLocaleTimeString(); // "下午3:17:33"
3. 日期对象的方法
3.1 日期对象的获取方法
date.getFullYear() ==>获取年份
date.getMonth() ==>获取月份 (0-11)
date.getDate() ==>获取日 (1-31)
date.getHours() ==>获取小时
date.getMinutes ==>获取分钟
date.getSeconds ==>获取秒钟
date.getMilliseconds ==>获取毫秒
date.getDay() ==>获取星期几 (0-6) 星期天是0
date.getTime() ==>获取当前时间到1970年1月1日午夜的毫秒数
date.getTimezoneOffset() ==> 获取当前时区的偏移时间 东8区是-480
// 1. 获取年份
date.getFullYear(); //2019
// 2. 获取月份
// 注意,月份的计数是从0开始的的,也就是1月份的数字为0,
// 所以获取月份数字后加1才是真正的月份
date.getMonth() + 1; // 3 + 1 = 4 ,
// 3. 获取日期
date.getDate(); // 26
// 4. 获取小时
date.getHours(); // 10
// 5. 获取分钟
date.getMinutes(); // 30
// 6. 获取秒数
date.getSeconds(); // 20
// 7. 获取毫秒数
date.getMilliseconds(); // 862
// 8. 获取星期几
date.getDay(); // 5
// 9. 获取时间戳
date.getTime(); //1556264444841(1970年1月1日0时0分0秒到现在的毫秒数)
// 10. 获取格林威治时间与本地时间相差的分钟数
date.getTimezoneOffset(); // -480 时区便宜,我们是东八区
// 查看格林威治时间
date.setHours(date.getHours() + date.getTimezoneOffset()/60);
date.toLocaleString();
3.2 设置时间的方法
date.setFullYear() ==>设置年份
date.setMonth() ==>设置月份 (0-11)
date.setDate() ==>设置日 (1-31)
date.setHours() ==>设置小时
date.setMinutes() ==>设置分钟
date.setSeconds() ==>设置秒钟
date.setMilliseconds() ==>设置毫秒
// 1. 设置日期的年份
date.setFullYear(2017); // 返回时间戳
// 2. 设置月份
// 注意如果你传入的参数大于11,将会减掉11,加一年,然后身下的在修改月份
date.setMonth(10); // 返回时间戳
例子:
每隔一秒将当前时间打印子控制台上
setInterval(function(){
var date = new Date();
var YY = date.getFullYear(); //2019
var MM = date.getMonth() + 1;
var DD = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();
console.log('现在的时间时'+YY+'年'+MM+'月'+DD+'日'+hh+'时'+mm+'分'+ss+'秒');
},1000)
4. 获取指定的时间
var date = new Date(参数) ==>获取指定时间
参数形式 ==>2019,1,5 2019年2月5日
// 获取指定的时间
var date = new Date(2019,1,5)
var date = new Date('2019-05-27 20:30:25');
var date = new Date('2019/05/27 20:30:25');
5. 获取两个时间戳相差的毫秒数
两个时间戳相减是毫秒数
var date = new Date(2020,0,25);
var now = new Date();
var _date = date - now; // _date的值是毫秒数
5.1 距离过年的时间
// 距离过年的天,时,分,秒
setInterval(function(){
var day = Math.floor(_date/(1000*60*60*24));
var hours = Math.floor(_date/(1000*60*60)%24);
var minutes = Math.floor(_date/(1000*60)%60);
var seconds = Math.floor(_date/(1000)%60);
},1000)
// toTwo
function toTwo(num){
if(num < 10){
return '0' + num;
}else{
return num;
}
}
网友评论