一、异步与单线程
1、什么是异步(对比同步)
同步任务:主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务。
异步任务:异步任务是指不进入主线程,而进入任务队列的任务,当主线程的任务结束后,任务队列会通知主线程执行任务队列里的任务(任务队列是个先进先出的堆栈)。
【异步和同步最大的区别:有没有阻塞程序的进行。(异步没有阻塞,同步会有阻塞)】
alert是同步,setTimeout是异步。
2、何时需要异步
(1)在可能发生等待的情况
(2)在等待过程中不能像alert一样阻塞程序运行
=》
因此,所有的“等待的情况”都需要异步。
3、前端使用异步的场景:
(1)定时任务:setTimeout、setInterval
(2)网络请求:ajax请求、动态<img>加载
(3)事件绑定
二、js内置对象
1、Date对象
Date.now()//获取当前时间的毫秒数,从1970年开始
var dt = new Date()
dt.getTime() //获取毫秒数, 从1970年开始
dt.getFullYear() //年
dt.getMonth() //月(0-11)
dt.getDate() //日 (1-31)
dt.getDay() //星期(0-6)
dt.getHours() //小时(0-23)
dt.getMinutes() //分钟(0-59)
dt.getSeconds() //秒(0-59)
2、Math
(1)获取随机数 Math.random()
3、数组API
(1) forEach 遍历所有元素
(2) every 判断所有元素是否都符合条件
(3)some 判断所有元素是否都符合条件
(4)sort 排序
(5)map对元素重新组装,生成新的数组
(6)filter过滤符合条件的元素
3、对象API
for in