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

js变量提升

js变量提升

在JavaScript中,变量提升(Hoisting)是一种特殊的语法行为,它允许变量和函数声明在它们实际出现之前被JavaScript引擎识别。这意味着,当你在代码的后面部分使用一个变量或函数时,JavaScript引擎实际上已经在前面的位置找到了它。

变量提升

当你在一个作用域内声明一个变量时,JavaScript引擎会立即创建一个变量绑定,并将这个变量绑定到那个作用域上。这意味着无论这个变量在哪里声明,它都已经被提升了。然而,只有变量的声明会被提升,赋值操作仍然会在原地执行。

例如:

console.log(foo); // 输出 "undefined"
var foo = 20;

在这个例子中,尽管foo是在console.log(foo);之后声明的,但var foo = 20;实际上已经被移到了这段代码的开始。所以输出的结果是 "undefined",因为在执行到console.log(foo);时,foo还没有被赋值。

函数提升

函数提升是指函数声明会被提升到它们所在的作用域的顶部。这意味着你可以在函数声明之前调用这个函数。

例如:

foo(); // 输出 "Hello World!"
function foo() {console.log("Hello World!");
}

在这个例子中,尽管foo()是在function foo() {...}之后被调用的,但函数声明function foo() {...}实际上已经被移到了这段代码的开始。所以输出的结果是 "Hello World!"。

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

相关文章:

  • C++ 设计模式之策略模式
  • (202401)深度强化学习基础2:策略梯度
  • bgp大AS小AS选路-联邦ebgp选路
  • beego API 自动化文档
  • 百度搜索Push个性化:新的突破
  • 【Oracle】ORA-32017和ORA-00384错误处理
  • MySQL三大日志
  • 力扣每日一练(24-1-20)
  • Pytest系列(2) - assert断言详细使用
  • CodeWave智能开发平台--03--目标:应用创建--10初级采购管理系统总结
  • 外包干了4个月,技术退步明显.......
  • 图片批量建码怎么用?每张图片快速生成二维码
  • 时间复杂度的排序
  • js控制浏览器前进、后退、页面跳转
  • 【长文阅读】MAMBA作者博士论文<MODELING SEQUENCES WITH STRUCTURED STATE SPACES>-Chapter1
  • Unity3D学习之UI系统——GUI
  • 用户ssh正确密码登陆均报错Permission denied, please try again.处理方法
  • IO、NIO、IO多路复用
  • 探索FTP:原理、实践与安全优化
  • git中的语法和术语含义
  • java SECS管理系统 将逐步推出 SECS 客户端(Passive) 管理系统 SECS快速开发平台 springboot secs开发平台
  • 使 a === 1 a === 2 a === 3 为 true 的几种“下毒“方法
  • Canny边缘检测 双阈值检测理解
  • 自动化测试:5分钟了解Selenium以及如何提升自动化测试的效果
  • 【MySQL】——关系数据库标准语言SQL(大纲)
  • 力扣hot100 最长有效括号 动态规划
  • @RequestBody注解基础
  • 前端基础面试题大全
  • 第一讲_HarmonyOS应用开发环境准备
  • 一、可行性研究报告模板(软件工程)