立即执行函数
当变量名与函数名重复时,变量优先于函数
原理:函数的编译过程比变量复杂
优点:防止函数内部变量被外部污染
与普通函数的区别:
普通函数有定义,按需执行,变量可能被污染
立即执行函数只要有定义直接执行
(function(){
//code
}())
(function (){
//code
})()
这是立即函数的写法
回调函数
首先要知道回调函数是异步的
优点:不会发生阻塞
在未来某一刻优先执行需要执行的代码,
缺点:容易造成回调地狱的问题,代码让人看不懂 promise()对象可以解决回调地狱的问题
弊端:。then链式结构很恶心
回调函数:一个定义的函数,作为另一个函数的实参传入到另一个函数中
* 回调函数执行:
* 自动执行: 针对一些内置的API 自动触发 例如 sort
* 手动执行: 自定义的函数传入的回调函数需要我们自己 写 xxx() 触发
getdata(check)
function getdata(callback){
//这里我们假设是从后端获取数据
setTimeout(function(){
//假设我们获取到数据info
var info = {
"id":1,
"name":'张三'
}
//得到数据以后执行函数方法
callback(info)//这个就是回调函数
},1000)
}
function check(data){
if(data.id==1){
console.log('验证成功,可以通过')
}
}
这些基本都是我们所学到的大部分对于回调函数的理解