JS基础知识题(下)异步&单线程、其他

同步和异步的区别是什么?分别举一个同步和异步的例子

同步会阻塞代码执行,而异步不会,具体参考我的这篇关于JavaScript Event Loop的博客
比如:alert 是同步;setTimout 是异步

前端使用异步的场景有哪些?

  • 定时任务:setTimeout、setInverval
  • 网络请求:ajax 请求、动态 加载
  • 事件绑定

获取 2020-07-19 格式的日期

function formatDate(dt) {
  if (!dt) {
    dt = new Date()
  }
  var y = dt.getFullYear()
  var m = dt.getMonth() + 1
  var d = dt.getDate()
  if (m < 10) {
    m = '0' + m
  }
  if (d < 10) {
    d = '0' + d
  }
  return y + '-' + m + '-' + d
}
const dt = new Date()
const format_dt = formatDate(dt)
console.log(format_dt) // 2020-07-19

获取随机数,要求是长度一致的字符串格式

var random = Math.random()
var random = random + '0000000000' // 加上10个0
var random = random.slice(0, 10) // 统一截取长度
console.log(random)

写一个能遍历对象和数组的通用 forEach 函数

function forEach(obj, fn) {
  if (obj instanceof Array) {
    // 遍历数组
    obj.forEach(function (item, index) {
      fn(index, item)
    })
  } else {
    // 遍历对象
    for (let key in obj) {
      fn(key, obj[key])
    }
  }
}
var arr = [1, 2, 3]
var obj = {
  a: 11,
  b: 22,
  c: 33,
}
// 注意 index, item 位置需要变化满足 fo in 的要求
forEach(arr, function (index, item) {
  console.log(index, item)
})
forEach(obj, function (index, item) {
  console.log(index, item)
})

原文地址:https://www.cnblogs.com/cqkjxxxx/p/13339943.html