前端基础的讲解-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 声明的变量在内存中进行提前声明或定义,预解析会把变量和函数的声明在代码执行之前完成,预解析也叫做变量、函数提升

相关推荐
GISer_Jing9 分钟前
AI Agent操作系统架构师:Harness Engineer解析
前端·人工智能·ai·aigc
YMWM_12 分钟前
print(f“{s!r}“)解释
开发语言·r语言
愤豆16 分钟前
05-Java语言核心-语法特性--模块化系统详解
java·开发语言·python
bksczm17 分钟前
文件流(fstream)
java·开发语言
NGC_661118 分钟前
Java 线程池阻塞队列与拒绝策略
java·开发语言
英俊潇洒美少年18 分钟前
css中专门用来提升渲染性能、减少重排重绘的属性
前端·css
小碗羊肉30 分钟前
【从零开始学Java | 第二十二篇】List集合
java·开发语言
m0_7167652331 分钟前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
天若有情67332 分钟前
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端·html
Highcharts.js32 分钟前
React 开发者的图表库生态:Highcharts React
前端·react.js·前端框架