关于js作用域变量和函数声明提升的总结
程序员文章站
2022-07-07 20:52:35
var a = 1;
function a() {
console.log(3);
}
console.log(a)...
var a = 1; function a() { console.log(3); } console.log(a); // 1 a(); // 报错
var a; function a() { console.log(2); } console.log(a); // 打印函数体 a(); // 2
一:
预解析时,函数声明创建的函数整体会提升到所在执行环境【作用域】的顶部,
函数表达式创建的函数,仅仅提升变量名到所在执行环境【作用域】的顶部。
二:
当函数声明和变量声明同时存在时,函数声明的优先级更高;
当变量声明但没有赋值并且函数名和变量名一致时,此名称仍指向函数;
当变量名赋值且函数名和变量名一致,此名称指向变量,函数被取代,
上一篇: 随鼠标滚轮缩小和放大图片教程