Math对象生成随机数与日期如何使用
Math对象
Math对象的常用属性和方法
不需要实例化对象,可以直接使用静态方法和静态属性
成员 | 作用 |
---|---|
PI | 获取圆周率,结果为3.141592653589793 |
abs(x) | 获取x的绝对值,可传入普通数值或是用字符表示的数值 |
max([value1,value2,…]) | 获取所有参数中的最大值 |
min([value1,value2,…]) | 获取所有参数中的最小值 |
pow(base,exponent) | 获取基数(base)的指数(exponent)次幂baseexponent |
sqrt(x) | 获取x的平方根 |
ceil(x) | 获取大于或等于x的最小整数,即向上(大)取整 |
floor(x) | 获取小于或等于x的最小整数,即向下(小)取整 |
round(x) | 获取x的四舍五入后的整数值 |
random() | 获取大于或等于0.0且小于1.0的随机值 |
下面通过具体代码演示
Math.PI; //获取圆周率
Math.abs(-25); //获取绝对值,返回结果25
Math.abs('25'); //获取绝对值,自动转换为数字,返回结果25
Math.max(5,7,9,8); //获取最大值为9
Math.min(6,2,5,3); //获取最小值为2
Math.pow(2,4); //获取2的4次幂,结果为16
Math.sqrt(9); //获取9的平方根,结果为3
Math.ceil(1.1); //向上取整结果为2
Math.ceil(1.9); //向上取整结果为2
Math.floor(1.1); //向下取整结果为1
Math.floor(1.9); //向下取整结果为1
Math.round(1.1); //四舍五入,结果为1
Math.round(1.5); //四舍五入,结果为2
Math.round(1.9); //四舍五入,结果为2
Math.round(-1.5); //四舍五入,结果为-1(取较大值)
Math.round(-1.6); //四舍五入,结果为-2(取较大值)
生成指定范围的随机数
Math.random()用来获取随机数,每次调用该方法的返回值结果都不相同
公式为“Math.random()*(max-min)+min”不要纠结为什么公式是这样的我查了也没查到,记住这个公式就可以了
Math.random()*(3+1)+1; //1<=返回结果<=3
Math.random()*(20+10)+10; //10<=返回结果<=20
Math.random()*(99+88)+88; //88<=返回结果<=99
上述的代码返回结果是浮点数,当需要获取随机整数时可以搭配Math.floor()搭配使用
Math.floor(Math.random()*(3-1)+1) //结果为整数最大值为3最小值1
日期对象
Javascript中的日期对象需要实例化对象才能使用,Date()是日期对象的构造函数
日期对象的使用
//方式1:没有参数,使用系统当前的时间作为对象保存的时间
var date1=new Date();
//输出结果:Wed Oct 16 2019 10:57:45 GMT+0800(中国标准时间)
conso.log(date1);
//方式2:传入年,月,日,时,分,秒(月的范围是0-11,即真实月份-1)
var date2=new Date(2019,10,16,10,57,56);
//输入结果:Sat Nov 16 2019 10:57:56 GMT+0800 (中国标准时间)
console.log(date2);
//方式3:用字符串表示日期和时间
var date3=new Date('2019-10-16 15:57:54')
//输出结果:Wed Oct 16 2019 15:57:54 GMT+0800 (中国标准时间)
console.log(date3);
方法 | 属性 |
---|---|
getFullYear() | 获取表示年份的4位数字,如2020 |
getMonth() | 获取月份,范围为0~11(0表示一月,1表示二月,以此类推) |
getDate() | 获取月份中的一天,范围为1~31 |
getDay() | 获取星期,范围0~6(0表示星期日,1表示星期1,6表示星期六) |
getHours() | 获取小时数0~23 |
getMinutes() | 获取分钟数,范围为0~59 |
getSeconds() | 获取毫秒数,范围为0~999 |
getTime() | 获取冲1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 |
方法 | 使用 |
---|---|
setFullYear(value) | 设置年份 |
setMonth(value) | 设置月份 |
setDate(value) | 设置月份中的某一天 |
setDay(value) | 设置星期 |
setHours(value) | 设置小时数 |
setSeconds(value) | 设置毫秒数 |
setTime(value) | 通过1970-01-01 00:00:00 计时的毫秒数来设置时间 |
下面我们通过具体代码演示Date 对象的使用,在控制台输入当前日期
var date=new Date(); //基于当前日期时间创建Date 对象
var year=date.getFullYear() //获取年
var month=date.getMonth()//获取月
var day=date.getDate();//获取日
//通过数值将星期值转换为字符串
var week=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
//输入date 对象保存的时间,实例:今天是2023年3月19日星期三
console.log('今天是'+year+'年'+month+'月'+day+'日'+week[date.getDay()]);
在上述代码中week[date.getDay()])用来从deta对象中获取星期值,如何作为数组索引到week数组中取出对应的星期几字符串。
在开发中,还经常需要将日期对象中的时间转换成指定的格式,实例代码如下。
//返回当前时间,格式为:时:分:秒 ,用两位数字表示
function getTime(){
var time=new Date();
var h=time.getHours();
h=h<10?'0'+h:h;
var m=time.getMinutes();
m=m<10?'0'+m:m;
var s=time.getSeconds();
s=s<10?'0'+s:s;
return h+':'+m+':'+s;
}
console.log(getTime()); //输入结果:20:01:11