前端JavaScript基础面试题01_JS基础知识(中)作用域、闭包
2021-04-14 21:25
标签:构造器 存在 listen efi tee load img type 图片 JS的变量提升主要从两方面来说,变量定义、函数声明,二者都是把对应的内容放到对应定义时的执行环境的顶部,然后JS再开始往下依次解释(注意:函数声明的提升权重大于变量提升) 前端JavaScript基础面试题01_JS基础知识(中)作用域、闭包 标签:构造器 存在 listen efi tee load img type 图片 原文地址:https://www.cnblogs.com/cqkjxxxx/p/13336464.html说一下对变量提升的理解
// 函数b和函数c的声明被放到了顶部
// var a
// var c
console.log(a) // undefined
console.log(c) // 此时输出的是函数c
var a = 100
var c = 100
b() // 我是b函数
function b() {
console.log(‘我是b函数‘)
}
function c() {
console.log(‘我是c函数‘)
}
说明 this 几种不同的使用场景
创建10个 标签,点击的时候弹出对应的序号、
var i, a
for (i = 0; i ‘
a.addEventListener(‘click‘, function (e) {
e.preventDefault()
alert(i) // 自由变量,要去父作用域获取值
})
document.body.appendChild(a)
})(i)
}
如何理解作用域?
实际开发中闭包的应用
// 封装私有变量
function isFirstLoad() {
var _list = [] // 私有变量
return function (id) {
if (_list.indexOf(id) >= 0) {
console.log(‘已经存在此状态‘)
return false
} else {
_list.push(id) // _list 自由变量
console.log(‘保存状态成功‘)
return true
}
}
}
var firstLoad = isFirstLoad()
firstLoad(10) // true
firstLoad(10) // false
firstLoad(20) // true
firstLoad(20) // false
上一篇:Canvas API详解
文章标题:前端JavaScript基础面试题01_JS基础知识(中)作用域、闭包
文章链接:http://soscw.com/index.php/essay/75812.html