js总结(二)

314 阅读1分钟

一 Math对象

常用的数学方法

  • Math.max()

    console.log(Math.max(1,99,3))
    
  • Math.min()

  • Math.abs() 取绝对值

     console.log(Math.abs(-1))
    
  • 三个取整的方法

    • Math.floor() floor 是地板的意思 向下取整(往小了取) console.log(Math.floor(1.1))//1 console.log(Math.floor(1.9))//1
    • Math.ceil( ) ceil 是天花板 向上取整
    • Math.round() 四舍五入
    • parseInt 只取整数部分
  • Math.random () 产生一个[0,1)的随机数

        //我们想要得到两个数之间的随机整数 并且 包含这2个整数
        Math.floor(Math.random() * (max - min + 1)) + min
    
    

封装一个自己的数学对象

  //封装一个自己的数学对象,里面有PI,最大值和最小值
  var myMath={
      PI:3.1415927,
      max:function(){
          var max = arguments[0]
          for(var i =0;i<arguments.length,i++){
              if(arguments[i]>arguments[0]){
                  max=arguments[i]
              }
              return max
          }
      }
      min:function(){
          var min = arguments[0]
          for(var i =0;i<arguments.length,i++){
              if(arguments[i]<arguments[0]){
                  min=arguments[i]
              }
              return min
          }
      }
  }
   myMath.max(1,3,5)

二 日期对象

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

  • new Date() 如果没写参数,返回系统当前时间 如果参数里面有时间,返回参数里面的时间 new Date('2019-5-5')

    //如果我们想获得2019-8-8这样的日期格式,需要手动格式化日期
      var date=new Date();
      date.getFullYear()//获取年
      date.getMonth()+1 //正常获取的月份小一个月
      date.getDate()//获取的是几号
      date.getDay()//获取的是周几 1-6  周日是 0
      date.getHours()       
    
    // 输出 今天是2020年9月13日 星期二
      var time = new Date();
              var year = time.getFullYear();
              var month = time.getMonth();
              var dates = time.getDate();
              var arr = ['星期日',
                  '星期一',
                  '星期二',
                  '星期三',
                  '星期四',
                  '星期五',
                  '星期六'
              ]
              var day = time.getDay();
              var days = arr[day]
              console.log(`今天是${year}${month}${dates}${days}`)
    
    
  • 获取时间戳

    1. valueOf() 或者 getTIme()
    2. +new Date()
    3. h5新增的方法 Date.now()

三 数组方法

  • 创建数组的两种方法
    1. 字面量 var arr = []
    2. 使用new Array var arr1 = new Array(2,3)//[2,3] new Array(5)//[empty × 5]
  • 检验是否为数组
    1. instanceof 返回的结果是true 或者false
    2. 用来判断该实例是否为某个对象的实例
        var arr = [1,2,4];
        console.log(arr instanceof Array)//true
      
    3. Array.isArray(参数) js var arr = [1,2,4]; console.log(Array.isArray(arr))//true
    4. typeof 用来检测的数据类型 typeof 的返回值包括以下几种 "undefined" 'boolean' 'string' 'number' 'object' 对象类型的变量 ,null 也是object 'function'
         console.log(typeof(a))//'undefined'
         console.log(typeof(true))//'boolean'
         typeof(NaN)//'number'
         typeof(null)//'object'
         typeof([])//'object'
         var fn = function(){};
         typeof(fn)//'function'
  • 添加删除数组的方法

    1. push() 在数组末尾添加一个或者多个元素 返回的结果是新数组的长度 原数组发生改变
    2. unshift()   在数组的开头增加元素
      
      返回的结果是新数组的长度 原数组发生改变
    3. pop( )  删除数组的最后一个元素
      
      pop( ) 没有参数 返回的结果是删除的那个元素 原数组发生改变
    4. shift( )   删除数组的第一个元素
      shifit( ) 没有参数
      
      返回的结果是删除的那个元素 原数组发生改变
  • 翻转数组 reverse()

     var arr = ['red','blue','haha','pink'];
     arr.reverse()j;
     console.log(arr)
     
     //自己写翻转数组
     var arr = ['pink', 'red', 'blue'];
     	var newArr=[];
     	for(var i = arr.length-1;i>=0;i--){
     	newArr[newArr.length] = arr[i]
     }
     console.log(newArr)
    
  • 数组排序 sort( )

     //  a-b   升序
     //  b-a   降序
     var arr1=[13,4,17,3];
     arr1.sort((a,b)=>a-b)
    
  • 返回数组索引号

    indexOf( ) 返回该数组元素的索引号, 只返回第一个满足条件的元素的索引号, 如果不存在该元素,返回-1 从前面查找 lastIndexOf( ) 从后面开始查找

      var arr = ['red', 'green', 'pink''blue'];
        console.log(arr.indexOf('blue'))//3
    
  • 数组去重

     //['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 去除数组中重复的元素。
     //核心思想:遍历旧数组元素,创建一个空数组,如果该数组元素没有在新数组里面出现过
     //我们就把它放到新数组元素中去
     //怎么判断数组元素在新数组是否存在 : 使用indexOf ==-1 
     //或者includes
     var arr =['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']
     var newArr = [];
     for(var i =0; i<arr.length;i++){
      if(!newArr.includes(arr[i]))
     newArr.push(arr[i])
     }
     console.log(newArr)//["c", "a", "z", "x", "b"]
    
  • 数组转换为字符串

    • toString( )
    • join( )
     var arr = [1, 2, 3];
         //arr.toString();
         //console.log(arr.join())
         //console.log(arr.join('$'))  "1&2&3"
    
  • 删除数组:splice( 第几个开始,要删除个数),返回被删除项目的新数组 ,原数组发生改变

四 字符串方法

  • charAt( ) 根据索引返回字符

      var str = 'abcdefg'; 
      console.log(str.charAt(3))
    
  • charCodeAt( ) 返回相应索引号的字符ASCII值

  • concat 字符串或者数组拼接

      var str = 'acfd'
      str.concat('red')  //"acfdred"
    
    //数组拼接
      var arr=[1,2,34,4]
      arr.concat([88,44,2])  //[1, 2, 34, 4, 88, 44, 2]
    
  • substr('截取的起始位置', '截取几个字符');

        var str1 = '改革春风吹满地';
        console.log(str1.substr(2, 2))  //春风
    
  • replace ('被替换的字符', '替换为的字符')

     var str = 'andyandy';
     console.log(str.replace('a','o')) //ondyandy
     //把里面所有的a 都替换为 o
     for(var i =0;i<str.length;i++){
         if(str.charAt(i)=='a'){
           str=  str.replace('a','o')
      }
     }
    
  • split ( '分隔符') 把字符串转换为数组

    • join 把数组转换为字符串
         var str2 = 'red, pink, blue';
          console.log(str2.split(','));// ["red", "pink", "blue"]
          var str3 = 'red&pink&blue';
         console.log(str3.split('&'));//["pink", "blue", "red"]
      
      //判断一个字符串 'abcoefoxyozzopp' 中出现次数最多的字符,并统计其次数。
      //循环字符串,创建一个对象,如果字符没有在对象中,那么就把其存入对象里面,属性值计为1;
      // 如果某个字符再出现,那么将其属性值++
      //遍历obj ,求出出现次数最多的字符串
      var str = 'abcoefoxyozzopp';
      var obj ={};
      for(var i = 0;i<str.length;i++){
          if( obj[str.charAt(i)]){
               obj[str.charAt(i)]++
          }else{
               obj[str.charAt(i)]= 1
          }   
      }
      console,log(obj) 
      a: 1
      b: 1
      c: 1
      e: 1
      f: 1
      o: 4
      p: 2
      x: 1
      y: 1
      z: 2
      var max = 0;
      var ch = ''
      for(var key in obj){
        if( obj[key] >max){
        max= obj[key]
           ch = key
        }
      }
      console.log(max,ch)