关于js中的数值处理对象和时间对象Math与Date

76 阅读2分钟

进制转化

  • 十进制转化为其他
       var num=100
       num.toString(2)  //十进制转为二进制
       num.toString(36) //十进制转为36进制
       console.log(num.toString(36));

        // 其他进制转换为十进制
        // var num = parseInt(数字, 将数字视为几进制的数字然后转换为10进制的数字)

        var num = parseInt(111,2)

        console.log(num);
  • 保留小数
    • 保留小数 toFixed, 保留小数时四舍五入, 且返回的是字符串
        var num = 100.123456789
        var num1 = num.toFixed(2)   // 100.12
        var num2 = num.toFixed(4)   // 100.1235

Math 方法 js中的数学方法

  • Math 给我们提供了操作数据的一些方法,

     // random 求一个随机数字 ,0~1
     console.log(Math.random());
    
     // round 四舍五入 
     console.log(Math.round(100.6));  //101
    
     // floor 向下取整
     console.log(Math.floor(100.6));  //100
    
     // ceil 向上取整
     console.log(Math.ceil(100.01));  //101
     
     // 绝对值
       console.log(Math.abs(10))
       console.log(Math.abs(-10))
    
      // 最大值   需要传递多个数字, 然后能够判断出这些数字中最大值, 不能直接传递数组
       console.log(Math.max(100, 59, 77, 201, 566))
      console.log(Math.max([100, 59, 77, 201, 566]))
    
    
      // 最小值, 规则和最大值相同, 只不过返回的是这些数字中 最小的值
       console.log(Math.min(100, 59, 77, 201, 566, 1))
       console.log(Math.min([100, 59, 77, 201, 566]))
    

时间对象的获取操作

// 年
       var date =new Date(2026,9,23,17,50,10)
       console.log(date.getFullYear());
       //月
       console.log(date.getMonth()+1);
       //日
       console.log(date.getDate());
       //时
       console.log(date.getHours());
       //分
       console.log(date.getMinutes());
       //秒
       console.log(date.getSeconds());

       // 周几
       console.log(date.getDay());
       
       //返回当前日期对象的时间戳
       // 时间戳:自1970年1月1日0时0分0秒到当前时间所经历的毫秒数
       console.log(date.getTime());
       
       // 返回当前时间的时间戳
       console.log(Date.now());

时间对象的设置操作

   // 1. 年
     date.setFullYear(2026)
     console.log(date.getFullYear());
     // 2. 月
     date.setMonth(2)
     console.log(date.getMonth());
     // 3. 日
     date.setDate(26)
     console.log(date.getDate());
     
     // 4. 时
     date.setHours(16)
     console.log(date.getHours());
     // 5. 分
     date.setMinutes(56)
     console.log(date.getMinutes());
     // 6. 秒
     date.setSeconds(46)
     console.log(date.getSeconds());

对于math的使用

  • 案例
    • 随机函数 -> 要求封装一个函数, 这个函数能够计算出一个 0~10 的随机整数
   function fn() {
      
           return Math.floor (Math.random()*11)
       }
       console.log(fn())
  • 随机函数概率统计用来统计各个随机数出现的次数

        function fn() {
            var obj={}
            for (let k = 0; k < 10000; k++) {
            // 0~10的随机数
              var num= Math.floor (Math.random()*11)
              // 进行判断 给对象中创建变量 并将统计的数赋予值
               obj[num]= obj[num]? ++obj[num]: 1
            }
            return obj
        }
        console.log(fn());
    
  • 获取两个日期之间的时间差

    
        var date1=new Date("2023-8-23 1:02:12")
        var date2=new Date(2023,7,26,22,15,36)
    
    //天 
        var day=( date2.getTime()-date1.getTime())/3600000/24 
    //时
        var houres= (day-parseInt(day))*24 
    //分
    var minutes= (houres-parseInt(houres))*60
    //秒
    var seconds= (minutes-parseInt(minutes))*60
    
        console.log(`俩天相差的时间是 ${parseInt(day)}${parseInt(houres)} 小时 ${parseInt(minutes)}${Math.round(seconds)} 秒`);