javaScript复习(六)Math对象与MathAPI 、Date对象与DateAPI

Math:

专门执行数学计算的对象,封装了数学计算中常用的常量

1. 取整:3种:         

       上取整: Math.ceil(n)

       下取整: Math.floor(n)

       四舍五入取整: Math.round(n);

round 与 toFixed相比

      toFixed  Number对象      按任意小数位数      *返回字符串*

      round    Math对象               只能取整!           返回数字

例:var n=1.23;

var a=n.toFixed(1);

console.log(1+a);         //输出: 11.2

var n=1.23;

var a=n.toFixed(1);

console.log(Number(a)+1);  //输出 2.2

var n=1.23;

var a=n.toFixed(1);

console.log(a-0+1);      //输出 2.2

2. 乘方/开平方:

      乘方:Math.pow(n,m):计算n的m次方

      开平方: Math.sqrt(n):计算n的平方根

3. 获取最大值/最小值;

      Math.max(a,b,c...)

      Math.min(a,b,c...)

  ***固定套路:变相实现获取数组中最大值

      Math.max.apply(Math,arr); 等于-->  Math.max(arr[0],arr[1],...)

  经过测试,Math所在的地方只要不为空,可以用任何字符替换Math,都可以得出最大值

4. 获取随机数:

Math.random();获得一个在0<=n<1范围内的小数, 得到的值得范围0<=n<1

任意min到max之间取一个随机整数:  parseInt(Math.random()*(max-min+1)+min)

   或Math.floor(Math.random()*(max-min+1)+min)  *不能用上取整或四舍五入取整*

 例:在60~100之间取随机整数       60<=X<=100 可以先看做 60<=X<101

    Math.random()*(100-60)              //    0<=X<40

    Math.random()*(100-60+1)            //    0<=X<41

 Math.random()*(100-60+1)+60         //    60<=X<101

parseInt(Math.random()*(100-60+1)+60)  //   向下取整后60 <= X <=100,如果此时采用上取整,会取到101的值

 

Date:

封装了一个时间点,提供了对时间和日期的操作API

1、Date中封装了从1970年1月1日0点0分0秒至今的毫秒数

2、创建Date对象常用的四种方式

    ① var now=new Date();  创建一个新日期对象同时,保存了*客户端*当前时间点的毫秒数。——获得当前时间

    ② var time=new Date("xxxx/xx/xx [xx:xx:xx]")   自定义时间对象

    ③ var time=new Date(年,月-1,日[,时,分,秒)    自定义时间对象

    ④ var date1=new Date();   //new Date(毫秒数)  

        var date2=new Date(date1.getTime());  通过复制日期对象创建新对象

3、将日期对象中的日期和时间转化为字符串

date.toLocaleString();将日期对象转换为字符串时,采用的是本地时间,显示的是地方日期的格式 
date.toUTCString();将日期对象转换为字符串时,采用的是世界时间。 显示的是世界日期的格式 

date.toLocaleDateString(); 仅转为日期部分

date.toLocaleTimeString(); 仅转为时间部分

例:    

var date=new Date();

var a=date.toUTCString();//采用的是世界时间。

var b=date.toLocaleString();//采用的是本地时间

var c=date.toLocaleDateString();//仅转为日期部分

var d=date.toLocaleTimeString();//仅转为时间部分

console.log(a);console.log(b);

console.log(c);console.log(d);

 Fri, 16 Nov 2018 02:18:26 GMT

 2018/11/16 上午10:18:26

 2018/11/16

 上午10:18:26

4、在Date中年份,月份,星期,天的数字表示方法

  Year  :年份,以四位数显示

Month:月份,值范围为0-11,一月份为0,十二月为11

Date : 日期/几号,表示一个月中的某一天,例如12月5号,5就是Date

  取值范围1-31,取得的值是与自身相同,例如5号值就是为5

Day:星期几,值为0-6,周日为0

 周日      周一     周二     周三     周四     周五     周六

   0           1           2          3          4           5          6

5、获得日期对象中的日期和时间

date.getTime();//返回日期对象中的时间与1970年1月1日0时0分0秒所间隔的毫秒数

date.getFullYear();//获取年份

date.getMonth();//获取月份

date.getDate();//获取日期

date.getDay();获取星期几

date.getHours();//返回小时部分

date.getMinutes();//返回分钟部分

date.getSeconds();//返回秒钟部分

date.getMilliseconds();//返回毫秒部分

6、设置日期对象中的日期和时间(一般获得日期与设置日期是同时进行的)

date.setFullYear();

date.setMonth();

date.setDate();

*星期没有set方法!

7、 对日期进行计算

   ① 两日期对象直接相减,结果是毫秒差!

   例:计算从2000年到现在有多少天

            var now=new Date();

            var time=new Date("2000/01/01");

            var days=parseInt((now-time)/1000/3600/24);

           console.log("已经过了"+days+"天");   // 已经过了6931天

    ② 对任意分量做加减:先用get取出来,做计算,再用set放回去

           date.setXXX(date.getXXX()+-n);   //*直接修改原日期对象*

           例:2015年签的合同,有效期3年,求合同到期时间,到期前一周发出提示

           var startdate=new Date("2015/01/01");

           var enddate=new Date(startdate.getTime());

           enddate.setFullYear(enddate.getFullYear()+3);

           console.log(enddate.toLocaleDateString());

           var tishi=new Date(enddate.getTime());

           tishi.setDate(tishi.getDate()-7);

           console.log(tishi.toLocaleDateString());

    输出:          2018/1/1          //这是合同到期时间

                        2017/12/25        //这是应该发出提示的时间

8、获得格式化后的当前时间

  var d=new Date();

  var year=d.getFullYear();

  var month=change(d.getMonth()+1);

  var day=change(d.getDate());

  var hour=change(d.getHours());

  var minute=change(d.getMinutes());

  var second=change(d.getSeconds());

  function change(t){

    if(t<10){

     return "0"+t;

    }else{

     return t;

    }

  }

  var time=year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;

console.log(time);             

 

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值