前端基础的讲解-JS(10)

作用域链

通过上节作用域我们知道,当我们声明一个函数时,程序会生成一个独立的作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据 内部函数可以访问外部函数变量 的这种机制,用链式查找决定哪些数据能被内部函数访问,就称为作用域链

作用域链采取就近原则的方式来查找变量最终的值。

javascript 复制代码
function  item1(){
let  num  =  123;
function  item2(){
console.log(num);  //  123
} 
item2();
}
let  num  =  456; 
item1();

JavaScript 预解析(重点)

JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步

  • 预解析
  • 代码执行

变量预解析(变量提升) 变量的声明会被提升到当前作用域的最上面,变量的赋值不提升

函数预解析(函数提升)函数的声明会被提升到当前作用域的最上面,但是不会调用函数

在当前作用域下,JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或定义,预解析会把变量和函数的声明在代码执行之前完成,预解析也叫做变量、函数提升

相关推荐
资深前端外卖员2 分钟前
【nodejs高可用】前端APM应用监控方案 + 落地
前端·后端
牙痛不能吃糖,哭2 分钟前
C++面试复习日记(8)2025.4.25,malloc,free和new,delete的区别
开发语言·c++
OhBonsai2 分钟前
Shader 图像处理1_ToneMap技术处理过曝
前端
突头小恐龙2 分钟前
Chrome devTools - Lighthouse
前端·javascript·chrome
谦谦橘子3 分钟前
手写tiny webpack,理解webpack原理
前端·javascript·webpack
土豆12504 分钟前
Tailwind CSS 精通指南:提升效率、可维护性与最佳实践
前端·css
花生了什么树lll5 分钟前
面试中被问到过的前端八股(四)
前端·面试
zqlcoding5 分钟前
使用el-table表格动态渲染表头数据之后,导致设置fixed的列渲染出现问题
前端·javascript·vue.js
海底火旺5 分钟前
破解二维矩阵搜索难题:从暴力到最优的算法之旅
javascript·算法·面试
健康的猪6 分钟前
golang的cgo的一点小心得
开发语言·后端·golang