【JavaScript】基础知识题(下)异步&单线程、其他
同步和异步的区别是什么?分别举一个同步和异步的例子
同步会阻塞代码执行,而异步不会,具体参考我的这篇关于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)
})