欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS 常见题目

程序员文章站 2022-06-09 18:02:27
...

JS 常见题目

  1. 获取 2017-06-10 格式的日期

    function formatDate(dt) {
      if (!dt) {
        dt = new Date()
      }
      var year = dt.getFullYear()
      var month = dt.getMonth() + 1
      var date = dt.getDate()
      if (month < 10) {
        //强制类型转换
        month = '0' + month
      }
      if (date < 10) {
        //强制类型转换
        date = '0' + date
      }
      //强制类型转换
      return year + '-' + month + '-' + date
    }
    var dt = new Date()
    var formatDate = formatDate(dt)
    console.log(formatDate)
    
  2. 获取随机数,要求是长度一致的字符串格式

    var random = Math.random()
    var random = random + '0000000000'
    var random = random.slice(0, 10)
    console.log(random)
    
  3. 写一个能遍历对象和数组的通用 forEach 函数

    function forEach(obj, fn) {
      var key
      if (obj instanceof Array) {
        //准确判断是不是数组
        obj.forEach(function(item, index) {
          fn(index, item)
        })
      } else {
        //不是数组就是对象
        for (key in obj) {
          if (obj.hasOwnProperty(key)) {
            fn(key, obj[key])
          }
        }
      }
    }
    
    var arr = [1, 2, 3]
    forEach(arr, function(index, item) {
      //注意,这里参数的顺序换了,为了和对象的遍历格式一致
      console.log(index, item)
    })
    var obj = {
      x: 100,
      y: 200
    }
    forEach(obj, function(key, val) {
      console.log(key, val)
    })
    

知识点

  1. 日期

    Date.now() //获取当前时间毫秒数
    var dt = new Date()
    dt.getTime() //获取毫秒数
    dt.getFullYear() //年
    dt.getMonth() //月(0-11), 得到的数需要+1
    dt.getDate() //日(1-31)
    dt.getHours() //小时(0-23)
    dt.getMinutes() //分钟(0-59)
    dt.getSeconds() //秒(0-59)
    
  2. Math

    Math.random() //获取随机数
    
  3. 数组 API

    • forEach 遍历所有元素

      var arr = [1, 2, 3]
      arr.forEach(function(item, index) {
        //遍历数组的所有元素
        console.log(index, item)
      })
      
    • every 判断所有元素是否都符合条件

      var arr = [1, 2, 3]
      var result = arr.every(function(item, index) {
        //用来判断所有的数组元素,都满足一个条件
        if (item < 4) {
          return true
        }
      })
      console.log(result)
      
    • some 判断是否有至少一个元素符合条件

      var arr = [1, 2, 3]
      var result = arr.some(function(item, index) {
        //用来判断所有的数组元素,只要有一个满足条件即可
        if (item < 2) {
          return true
        }
      })
      console.log(result)
      
    • sort 排序

      var arr = [1, 4, 2, 3, 5]
      var result = arr.sort(function(a, b) {
        //从小到大排序
        return a - b
        //从大到小排序
        //return b - a;
      })
      console.log(result)
      
    • map 对元素重新组装,生成新数组

      var arr = [1, 2, 3, 4]
      var result = arr.map(function(item, index) {
        //将元素重新组装,并返回
        return '<b>' + item + '</b>'
      })
      console.log(result)
      
    • filter 过滤符合条件的元素

      var arr = [1, 2, 3]
      var result = arr.filter(function(item, index) {
        //通过某一个条件过滤数组
        if (item >= 2) {
          return true
        }
      })
      console.log(result)
      
  4. 对象 API

    var obj = {
      x: 100,
      y: 200,
      z: 300
    }
    var key
    for (key in obj) {
      if (obj.hasOwnProperty(key)) {
        console.log(key, obj[key])
      }
    }
    
相关标签: JS 面试题