作用域和闭包

首先,引入一个例子

console.log(a)
var a = 100 
//undefined
fn('zhangsan')
function fn(name){
console.log(name)
}
// zhangsan

理解几道题目
1.说一下对变量提升的理解

2创建10个标签,点击的时候弹出对应的序号

var i 
for(i = 0; i<10;i++){
(function (i){
var a = document.createElement('a')
a.innerHTML =  1 + '
' a.addEventListener('click',function(e){ e.preventDefault() alert(i) }) document.body.appendChild(a) })(i) }

3如何理解作用域
自由变量 自由变量的查找 闭包的两个场景

4实际开发中闭包的应用
闭包实际应用中主要用于封装变量,收敛权限

function isFirstLoad(){
var _list = []
return function (id){
if(_list.indexOf(id) >=0){
return false
}else{
_list.push(id)
return true
           }
     }
}
var firstLoad = is firstLoad()
firstLoad(10)//true
firstLoad(10)//false
firstLoad(20)//true

5执行上下文
范围:一段

你可能感兴趣的:(作用域和闭包)