当前位置: 首页 > news >正文

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

作用域链

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

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

function  item1(){
let  num  =  123;
function  item2(){
console.log(num);  //  123
} 
item2();
}
let  num  =  456; 
item1();

JavaScript 预解析(重点)

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

  • 预解析
  • 代码执行

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

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

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

http://www.lryc.cn/news/483541.html

相关文章:

  • JNI整理总结
  • aws中AcmClient.describeCertificate返回值中没有ResourceRecord
  • Spring Task详细讲解
  • C++初阶 --- 类和对象(1)
  • 《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接
  • Anaconda 和 conda 是什么关系?就像 pip 和 python 一样吗
  • 「数据治理」核心专业术语解释!
  • Mac Nginx 前端打包部署
  • 乳腺癌诊断分析——基于聚类分析实现
  • Ubuntu 22.04 安装配置opencv
  • 【软考】系统架构设计师-计算机系统基础(3):嵌入式系统
  • 实测运行容器化Tomcat服务器
  • 致敬苹果的国产手机,只会失去更多市场,iPhone一骑绝尘!
  • 《MYSQL45讲》kill不掉的线程
  • 单体架构 IM 系统之 Server 节点状态化分析
  • java xml 文本解析
  • Docker占用空间太大磁盘空间不足清理妙招
  • 编程之路,从0开始:字符函数和字符串函数
  • 化工防爆巡检机器人:在挑战中成长,为化工安全保驾护航
  • 音频采样数据格式
  • 【pytorch】常用强化学习算法实现(持续更新)
  • DAY59||并查集理论基础 |寻找存在的路径
  • Mybatis执行自定义SQL并使用PageHelper进行分页
  • OpenCV DNN
  • 什么时候需要复写hashcode()和compartTo方法
  • PostgreSQL 日志文件备份
  • 2023年MathorCup数学建模B题城市轨道交通列车时刻表优化问题解题全过程文档加程序
  • 数字农业产业链整体建设方案
  • awk那些事儿:在awk中使用shell变量的两种方式
  • 大数据面试题--kafka夺命连环问(后10问)