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

前端基础的讲解-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.kler.cn/a/393458.html

相关文章:

  • Spring常见面试题总结
  • 深入解读数据资产化实践指南(2024年)
  • Cherno C++学习笔记 P46 箭头运算符
  • # 起步专用 - 哔哩哔哩全模块超还原设计!(内含接口文档、数据库设计)
  • 服务器证书原理
  • C/C++基础错题归纳
  • Scala学习记录,case class,迭代器
  • 如何制作代购系统:从概念到实现
  • 微服务day06
  • 刷算法题(C++)
  • LeetCode【0025】K个一组翻转链表
  • 【工具插件类教学】在 Unity 中使用 iTextSharp 实现 PDF 文件生成与导出
  • Netty实现WebSocket Client三种典型方式
  • 【Springboot】黑马大事件笔记 day1
  • 【go从零单排】HTTP客户端和服务端
  • 群控系统服务端开发模式-应用开发-前端退出功能
  • 丹摩征文活动|FLUX.1 和 ComfyUI:从部署到上手,轻松驾驭!
  • apk反编译修改教程系列-----apk应用反编译中AndroidManifest.xml详细代码释义解析 包含各种权限 代码含义
  • CyclicBarrier复杂场景示例
  • ThinkServer SR658H V2服务器BMC做raid与装系统
  • TCP 为什么是流协议而不是包协议
  • SpringBoot框架在共享汽车管理中的应用
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • 基于SpringBoot智慧社区管理平台
  • 力扣(LeetCode)LCR 179. 查找总价格为目标值的两个商品(Java)
  • Fabric.js中文教程