同步与异步
javascript语言是一门“单线程”的语言,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程,无论如何,js做事情的时候都是只有一条流水线(单线程),同步和异步的差别就在于这条流水线上各个流程的执行顺序不同。
同步任务:在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;
异步任务:不进入主线程、而进入"任务队列"的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。
回调函数
—函数当参数,传递另外一个函数
在JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。
但是回调函数有一个弊端,多层嵌套可读性很差,这个称之为 “回调地狱”
—回调函数简单应用—
–回调函数将函数内部的值带出来
function fn(callback){
$ajax({
url:'数据接口地址',
success:function(data){
let arrdata = JSON.parse(data);
callback(arrdata);
}
});
}
fn(function(d){
console.log(d);
})