day06原生js Math方法和Date的使用

Math

Math是JS中的一个内置对象(注,它不是构造函数 千万不能 new Math())
它提供了许多的数学方法。 比如: 获取一个随机数、 获取一个数的绝对值、 向上取整、 向下取整等

方法

  • random() 用于获取0~1之间的随机数 包含0 不包含1
  • abs(num) 用于获取参数的绝对值
    • num 数字
  • floor(num) 用于获取num的向下取整数值
    • num 数字
  • ceil(num) 用于获取num的向上取整数值
    • num 数字
  • round(num) 用于获取num的四舍五入数值
    • num 数字
  • pow(x, y) 用于获取x的y次方
    • x 底数
    • y 指数
  • max(a, b, c, …) 用于获取参数列表中最大的数值
  • min(a, b, c, …) 用于获取参数列表中最小的数值
  • sqrt(num) 获取num的平方根

Date

Date是JS中提供的用于日期操作的构造函数

方法

  • getFullYear 获取年

  • getMonth 获取月

    • 月从0开始 0表示1月 1表示2月… 11表示12月
  • getDate 获取日期 1 ~ 31

  • getDay 获取星期

    • 星期天是0 1~6分别表示周一到周六
  • getHours 获取小时 0~23

  • getMinutes 获取分钟 0 ~ 59

  • getSeconds 获取秒 0 ~ 59

  • getMilliSeconds 获取毫秒 0 ~ 999

  • getTime 获取该日期到1970年1月1日8点0分0秒的时间戳毫秒值

  • setFullYear 设置年

  • setMonth 设置月

    • 月从0开始 0表示1月 1表示2月… 11表示12月
  • setDate 设置日期

  • setHours 设置小时

  • setMinutes 设置分钟

  • setSeconds 设置秒

  • setMilliSeconds 设置毫秒值

  • setTime 设置毫秒值

call和apply

call

  • 执行原函数
    function fun() {
        console.log(1);
    }
    var obj = {name:'zhangsan'};
    fun(); // window
    fun.call(); // 1 
  • 改变函数中的this
    function fun() {
        console.log(this);
    }
    var obj = {name:'zhangsan'};
    fun(); // window
    fun.call(obj); // obj 
  • 传递参数
    • 第一个参数 是原函数中新this
    • 第二个参数 是原函数第一个参数
    • 第三个参数 是原函数第二个参数
    • 第四个参数 是原函数第三个参数
    // 函数中的this 
    function fun(a, b) {
        
        console.log(this);
        return a + b;
    }
    var obj = {name:'zhangsan'};

    // 第一个办法: call
    console.log(fun(1, 2)); // 3
    console.log(fun.call(obj, 2, 3)); // 5

apply

  • 执行原函数
    function fun() {
        console.log(1);
    }
    var obj = {name:'zhangsan'};
    fun(); // window
    fun.apply(); // 1 
  • 改变函数中的this
    function fun() {
        console.log(this);
    }
    var obj = {name:'zhangsan'};
    fun(); // window
    fun.apply(obj); // obj 
  • 传递参数
    • apply只接受两个参数
    • 1 是原函数中新this
    • 2 是原函数所接收的实参列表数组
    • 数组的第0项 是原函数所需的第1个参数
    • 数组的第1项 是原函数所需的第2个参数
    • 数组的第2项 是原函数所需的第3个参数
    • 数组的第3项 是原函数所需的第4个参数
    // 函数中的this 
    function fun(a, b) {
        
        console.log(this);
        return a + b;
    }
    var obj = {name:'zhangsan'};

    // 第一个办法: call
    console.log(fun(1, 2)); // 3
    console.log(fun.apply(obj, [2, 3])); // 5


    // console.log (false-1); //-1
            // var a =1;
            // function a2(){
            //     console.log(a); //undefined 由于a会变量提升
            //     var a =2;
            //     console.log(a); //2
            // }
            // a2();



#案例  
<script>
        // 请实现一个倒计时功能 截至日期为 2019年9月23日 15:40:00
        // 获取该日期
        var targetDate = new Date("2019-09-23 15:40:00");

        // 获取当前日期
        var nowDate = new Date();

        function getDateDistance(date1, date2) {
            // getTime获取的是当前日期到1970-1-1 00:00:00 的毫秒值
            var time1 = date1.getTime();
            var time2 = date2.getTime();
            var distance = Math.abs(date1 - date2);

            var seconds = distance / 1000;
            var minutes = seconds / 60;
            var hours = minutes / 60;
            var days = hours / 24;
            return parseInt(days)  + "天" + parseInt(hours % 24) + "小时" + parseInt(minutes % 60) + "分" + parseInt(seconds % 60) + "秒";
       }

       document.body.innerHTML = "据2019年9月23日 15:40:00还有" + getDateDistance(nowDate, targetDate);
       setInterval(function() {
            document.body.innerHTML = "据2019年9月23日 15:40:00还有" + getDateDistance(new Date(), targetDate);
       }, 1000);

       
    </script>



<script>
        // 定义一个函数 该函数负责计算相差的天数
        function getDateDistance(date1, date2) {
            // getTime获取的是当前日期到1970-1-1 00:00:00 的毫秒值
            var time1 = date1.getTime();
            console.log(time1);
            var time2 = date2.getTime();
            console.log(time2);
            var distance = Math.abs(date1 - date2);

            // 开始计算
            console.log(distance);
            // 毫秒转秒
            var seconds = distance / 1000;
            console.log(seconds);
            // 秒转分钟
            var minutes = seconds / 60;
            console.log(minutes);
            // 分钟转小时
            var hours = minutes / 60;
            console.log(hours);
            // 小时转天
            var days = hours / 24;
            console.log(days);
            return days;
       }

        // 定义日期1
        var date = new Date("2016-12-09");
        // 定义日期2
        var date1 = new Date("2016-12-10");

        getDateDistance(date, date1);
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值