JS(Math与Date)

23 阅读4分钟

进制转换与保留小数

  1. 十进制转换为其他进制

  十进制.toString(其他进制的数)
  
  var num = 100
  num.toString(2) //将10进制的100,转换为2进制的数,得到了:'1100100'
  
  num.toString(36) // 将10进制的100,转为为36进制的数,得到了:'2s'
  1. 其他进制转换为十进制
  var num = parseInt(数字,将数字视为几进制的数字然后转换为10进制的数字)
  
  var num = parseInt(100,2) // 将100视为2进制的数,然后将其转换为十进制的数字,得到了:4
  
  var num =paresInt(100,16) //将100视为16进制的数,然后将其转换为十进制的数字,得到了:256
  1. 保留小数 toFixed,保留小数时四舍五入,切返回的时字符串
  var num =100.123456789
  var num1=num.toFixed(2)  //100.12
  var num2 =num.toFixed(4) //100.1235
  

Math 数学方法

  • 是JS提供的一个对象,内部有很多个 方法/函数 给我们使用

   // random 求一个随机数字 0~1 但是不包含1
   console.log(Math.random())
   
   // 四舍五入---向下取整---向上取整
   
   //四舍五入
   console.log(Math.round(100.4)) // 100
   console.log(Math.round(100.5)) //101
   
   //向下取整
   console.log(Math.floor(100.000001)) //100
   console.log(Math.floor(100.999999)) //100
   
   //向上取整
   console.log(Math.ceil(100.0000001)) //101
   console.log(Math.ceil(100.9999999)) //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))
   console.log(Math.min([100,59,77,201,566])
   
   

随机函数

  // 随机函数 ->  要求封装一个函数, 这个函数能够计算出一个 0~10 的随机整数
  
  function fn(){
  //1.先拿到随机数
  var num=Math.random()
  //2.将随机数放大10倍
  num*=10
  //3.将随机数取整(四舍五入)
  num=Math.round(num)
  // 4.将计算后的随机数返回
  console.log(num)
  }
  console.log(fn())

随机函数概率

// 统计一个 随机数出现的次数
 function fn(){
 var num=Math.random()
 num+=10
 num=Math.round(num)
 console.log(num)
 }
 console.log(fn())
 
 //基本版
 var obj={}
 for(var i=0;i<=11000;i++){
 var num=fn()
 if(obj[num]===undefined){
 obj[num]=1}else{
 obj[num]=obj[num]+1
 }
 }console.log(obj)
 
 //优化2
   
        var obj = {}
        for (var i = 1; i <= 11000; i++) {
            var num = fn()

            // obj[num] = 1
            // obj[num] = obj[num] + 1

            obj[num] = obj[num] ? obj[num] + 1 : 1
        }
        console.log(obj)
        
       //优化3
        var obj = {}
        for (var i = 1; i <= 11000; i++) {
            var num = fn()
            obj[num] = obj[num] ? obj[num] + 1 : 1
        }
        console.log(obj)

时间对象

        // 通过 内置的构造函数 创建一个 时间对象, 并保存在变量 date 中
        // var date = new Date()   // 不传参的时候, 时间对象的内容就是当前的时间
        // console.log(date)   // 注意: 时间对象如果直接打印, 那么看到的就是一个字符串
        
        // 传参
        // var date = new Date(2018)   // 一个数字不允许
        // var date = new Date(2018, 8)   // 注意: 时间对象中 月份 是 0~11
        // var date = new Date(2018, 8, 23)
        // var date = new Date(2018, 8, 23, 17)
        var date = new Date(2018, 8, 23, 17, 39, 56)
        console.log(date)
        
        
        
        console.log(new Date('2019'))   // Tue Jan 01 2019 08:00:00 GMT+0800 (中国标准时间)
        console.log(new Date('2019-02'))   // Fri Feb 01 2019 08:00:00 GMT+0800 (中国标准时间)
        console.log(new Date('2019-02-28')) // Thu Feb 28 2019 08:00:00 GMT+0800 (中国标准时间)
        console.log(new Date('2019-02-28 13:')) // Thu Feb 28 2019 13:00:00 GMT+0800 (中国标准时间)
        console.log(new Date('2019-02-28 13:13:')) // Thu Feb 28 2019 13:13:00 GMT+0800 (中国标准时间)
        console.log(new Date('2019-02-28 13:13:13')) // Thu Feb 28 2019 13:13:13 GMT+0800 (中国标准时间)
        
        
 

时间对象的获取操作

因为时间对象本身打印出来是一个普通字符串, 我们想要的到里边的信息相对比较麻烦 所以对象提供了一些方法能让我们更简单的获取到时间对象内部的一些信息



var date = new Date()
console.log(date)

//1.年
console.log(date.getFullYear())

//2.月
console.log(date.getMonth())

//3.日
console.log(date.getDay()) //本周的第几天
console.log(date.getDate()) //本月的第几天


// 4.时
console.log(date.getHours())

//5分
console.log(date.getMinutes())

//6 秒
console.log(date.getSeconds())

// 7.获取当前距离 1970.1.1 0:0:0   所过去的总毫秒数

console.log(date.getTime())

时间对象的设置操作

 var date = new Date()
 
        // 1. 年
       date.setFullyear(2022)
       console.log(date.getFullyear())
       
       //2.月
       date.setMounth(6)
       console.log(date.getMounth())
       
       //3日
       date.setDay(1)   // JS 中的时间对象没有给我们提供修改 周几的方法
       date.setDate(24)    // 修改了 每月的第几天后 每周的第几天也会同步发生变化
      console.log(date.getDate())
       console.log(date.getDay())
      
      //4.时
      date.setHours(18)
      console.log(date.getHours())