Math和Date内置对象

Math

Math数学对象不是一个构造函数,所以不需要new来调用,而是直接调用里面的属性和方法
Math利用对象封装自己的数学对象,犹如里面有如下算法

<script>
var myMath = {
        PI: 3.1415992653,
        max: function () {
            var max = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                if (arguments[i] > max) {
                    max = arguments[i];
                }
            }
            return max;
        },
        min: function () {
            var min = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                if (arguments[i] < min) {
                    min = arguments[i];
                }
            }
            return min;
        }

   }
 console.log(myMath.PI);
 </script>

插入arguments使用,不是内置对象

arguments:只有函数才有 arguments对象,而且是每个函数都内置好了这个arguments
伪数组 并不是真正意义上的数组
1.具有数组的length属性
2.按照索引的方式进行存储的
3.它没有真正数组的一些方法 pop() push()等等

<script>
 function fn() {
        console.log(arguments);//里面存储了所有传递过来的实参
        console.log(arguments.length);
        console.log(arguments[2]);

 // 可以按照数组的方式遍历arguments
        for (var i = 0; i < arguments.length; i++) {
            console.log(arguments[i]);
        }
    }
    fn(1, 2, 3);
    </script>
绝对值方法

console.log(Math.abs(-1));//1
console.log(Math.abs(‘-1’));//隐形转换 会把字符串型-1 转换为数字型
console.log(Math.abs(‘xiao’));//NaN

三个取整方法

1. Math.floor() 向下取整

console.log(Math.floor(1.1));//1
console.log(Math.floor(1.9));//1

2. Math.ceil() ceil天花板 向上取整 往最大取整

console.log(Math.ceil(1.1));//2
console.log(Math.ceil(1.9));//2

3.Math.round() 四舍五入 其它数字都是四舍五入,但是.5特殊,它往大取值

console.log(Math.round(1.5));//2
console.log(Math.round(-1.1));//-1
console.log(Math.round(-1.5));//-1

Math对象随机数
  1. random()返回一个随机小数 0=<x<1
  2. 这个方法里面不能带参数
<script>
//如果我们想要得到两个数之间的随机整数 并且包括这2个整数
    // 公式:Math.floor(Math.radom()*(max-min-1))+min;
    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

   console.log(getRandom(1, 10));
    // 随机点名
    var arr = ['张三', '李四', '晓红', '小米', '何况'];
    // console.log(arr[0]);
    console.log(arr[getRandom(0, arr.length - 1)]);
    </script>

Date

Date() 日期对象是一个构造函数,必须使用new 来调用创建我们的日期对象。

var arr = new Array();//创建一个数组对象
var obj = new Object();//创建一个对象实例

  1. Date:如果没有参数, 返回当前系统时间

var date = new Date();

  1. 参数常用的方法 数字型 2022,10,01 或者字符串 ‘2019-10-1 8:8:8

var date1 = new Date(2019, 10, 1);
console.log(date1);//返回的是11月 不是10月

格式化日期

<script>
 // 格式化日期 年月日
    var date = new Date();
    console.log(date.getFullYear());//返回当前日期的年 2022
    console.log(date.getMonth() + 1);//月份 返回的月份前一个月 记得加一
    console.log(date.getDate());//返回几号 30
    console.log(date.getDay());//返回星期  周日返回的是0

  // 格式化时分秒
    var date = new Date();
    console.log(date.getHours());//时
    console.log(date.getMinutes());//分
    console.log(date.getSeconds());//秒
    </script>

Date总的毫秒数
获取当前Date总的毫秒数,不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数。

  1. 通过 valuOf() getTime()

var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());

  1. 简单的写法(最常用的写法)

var date1 = +new Date(); // +new Date() 返回的就是总的毫秒数
console.log(date1);

  1. H5新增的获取毫秒数

console.log(Date.now());

倒计时案例
<script>
 // 转换公式如下:
    // d=parseInt(总秒数/60/60/24);  计算天数
    // h=parseInt(总秒数/60/60%24);  计算小时
    // m=parseInt(总秒数/60%60);     计算分数
    // s=parseInt(总秒数%60);        计算当前秒数
    function countDown(time) {
        var nowTime = +new Date();  //返回当前时间的总毫秒数
        var inputTime = +new Date(time);  //返回的是用户输入时间总的毫秒数
        var times = (inputTime - nowTime) / 1000;  //times是剩余时间总的秒数
        var d = parseInt(times / 60 / 60 / 24);  //天
        d = d < 10 ? '0' + d : d;
        var h = parseInt(times / 60 / 60 % 24);
        h = h < 10 ? '0' + h : h;
        var m = parseInt(times / 60 % 60);
        m = m < 10 ? '0' + m : m;
        var s = parseInt(times % 60);
        s = s < 10 ? '0' + s : s;
        return d + '天' + h + '时' + m + '秒' + s + '秒';
    }

   console.log(countDown('2022-7-31 00:00:00'));
   </script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值