声明提升
- JS代码在运行时, 需要先
声明提升
: 把var/let/const/function/class
声明的变量提升到作用域的顶部, 然后再执行提升后的代码 - 注意事项
- 函数提升: 整体提升 – 函数体+函数名
- 函数表达式中的函数不提升:
var 变量 = function (){}
- 假如提升:
var 变量 =
值被提走了, 表达式语法错误
- 假如提升:
- var: 只提升 var 的部分, 不提升 = 赋值
<script>
// JS的代码: 执行顺序是从上至下运行, 和 正常人的阅读顺序相同
// clg
console.log(111);
console.log(222);
console.log(333);
// JS文件的运行方式: 与正常人的思维不同, 这正是JS的特色(反人类设计)
// 声明提升: JS在运行时, 会先找到所有的声明(变量), 提升到顶部, 然后再执行
// 方案: 为了在执行代码时, 没有遗漏变量, 所以就需要先查询出所有的变量, 提升到顶部, 然后再执行
// JS中的 变量声明方式有哪些?
// let const var function class
// 剑桥同学, 要到沙滩上捡贝壳, 只能捡走1个, 捡走就必须离开沙滩.. 有什么办法能捡到最漂亮的, 没有遗漏?
// 方案: 先收集沙滩上所有的贝壳, 然后再进行挑选
function a() {
console.log(100);
}
a()
function a() {
console.log(200);
}
a()
</script>