2.用来计数的循环变量泄露为全局变量。
经典异步+var面试题
for (var i = 0; i < 5; i++) {
setTimeout(function(){
console.log(i) // 5,5,5,5,5
},1000)
}
console.log(i) // 5
for (let i = 0; i < 5; i++) {
setTimeout(function(){
console.log(i) // 0,1,2,3,4
},1000)
}
console.log(i) // undefined
- 变量提升
var 存在变量提升,未声明使用默认值undefined
let、const未声明会提示ReferenceError
console.log(a) //undefined
var a = 1
console.log(a)//Uncaught ReferenceError: a is not defined
let a = 1
- 重复声明
var 允许重复声明
let、const不允许在相同作用域重复声明
let a
let a//Uncaught SyntaxError: Identifier ‘a’ has already been declared
- 全局对象属性
let、const声明的全局变量不属于全局对象的属性
let a = 0
console.log(this.a) //undefiend
只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
var tmp = 123;
if (true) {
tmp = ‘abc’ //ReferenceError
let tmp
}
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!