前端js学习笔记--内置对象Math、Date

在JS中的对象分为3种:自定义对象、内置对象、浏览器对象
JS提供了多个内置对象:Math、Date、Array、String等

一.Math数学对象

Math数学对象,不是一个构造函数,所以不需要new来调用,而是直接使用里面的属性和方法即可

1.绝对值方法:Math.abs()

console.log(1); // 1
console.log('-1'); //隐式转换 会把字符串型的-1转换为数字型,输出1
console.log('pink'); //NaN

2.三个取整方法

  • Math.floor() 向下取整 往最小的取
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.9)); // 1
  • Math.ceil() 向上取整 往最大的取
console.log(Math.floor(1.1)); // 2
console.log(Math.floor(1.9)); // 2
  • Math.round() 四舍五入
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.5)); // 2
注意
其他数字都是四舍五入,但是.5特殊,它往大数取
console.log(Math.floor(-1.5)); // 结果是-1 

其他数字都是四舍五入,但是.5特殊,它往大数取

3.随机数方法 Math.random()

  • random()返回一个小数,取值范围[0,1)
  • 这个方法中不跟参数console.log(Math.random());
  • 我们想要得到两个数之间的随机整数,并且包含这两个数,代码如下!!!
function getRandom(min,max){
	return Math.floor(Math.random() * (max-min+1)) + min; // 记住
}

二.Date日期对象

Date()是一个日期对象,为构造函数,必须使用new来调用日期对象var date = new Date();

1.如果new Date()里面没有参数,则会返回当前系统的当前时间
2.可以在Date()中加入参数,参数常用的写法:数字型 2019,10,01(如果输入的是数字型,返回的结果会比正常的月份大一个月) 或者是字符串型 ‘2019-10-1 8:8:8’

var date1 = new Date(2019,10,01); // 返回的是11月 不是10月
var date1 = new Date('2019-10-01 8:8:8'); // 返回正常输入的日期

3.格式化日期 年月日

var date = new Date();
console.log(date.getFullYear()); //返回当前日期的年
console.log(date.getMonth() + 1); // 月份 返回的月份会小1个月 所以要记得+1
console.log(date.getDate()); //返回的是几月
console.log(date.getDay()); //周一返回的是1 周六返回的是6 周日返回的是0

4.获得Date总的毫秒数(时间戳),它不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数

  • 通过valueOf() , getTime()
var date = new Date();
console.log(date.valueOf()); //就是我们现在的时间距离1970.1.1总的毫秒数
console.log(date.getTime());
  • 简单的写法(最常用的写法)
var date = +new Date(); //+new Date()返回的就是总的毫秒数
  • H5新增的获得总的毫秒数
console.log(Date.now());

案例分析:

倒计时案例思路

  1. 核心算法:未来预设的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着时分秒相减,比如05分减去25分,结果会是负数的。
  2. 所以用时间戳来实现,因为时间戳是独一无二的。用户预设时间的总毫秒数减去现在时间的总毫秒数,得到的就是剩余时间的毫秒数。
  3. 把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转换为时分秒)
    转换公式如下!!
    d = parseInt(总秒数/60/60/24); //计算天数
    h = parseInt(总秒数/60/60%24);//计算小时
    m = parseInt(总秒数/60%60);//计算分钟
    s = parseInt(总秒数%60);//计算当前秒数
    毫秒换算成秒:/1000
function countDown(time){
			var dateNow = +new Date();
			var dateWill = +new Date(time);
			var cha = (dateWill.valueOf()-dateNow)/1000;
			var d = parseInt(cha/60/60/24); //计算天数
			 d = d>10?d:'0'+ d;
 			var h = parseInt(cha/60/60%24);//计算小时
			 h = h>10?h:'0'+ h;
			var m = parseInt(cha/60%60);//计算分钟
			 m = m>10?m:'0'+ m;
 			var s = parseInt(cha%60);//计算当前秒数
			 s =s>10?s:'0'+ s;
 			 return '剩余'+d +'天' + h + '小时' + m +'分钟' + s +'秒'
		}
		console.log(countDown('2020-10-11 21:30:00'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值