【JavaScript】 变量提升和函数提升

变量提升

 1. 允许在变量声明之前即被访问。 
 2. 在代码执行之前,把当前作用域中var声明的变量全部提到当前作用域的最前面。 
 3. 只提升声明,不提升赋值

function fn(){console.log(num)var num = 10
}

相当于以下代码:

function fn(){var numconsole.log(num)//undefinedvar num = 10
}

函数提升

只提升函数声明,不提升函数调用。

fn()//正常输出“函数提升”,因为对于函数定义声明的函数可以提升声明
function fn() {console.log('函数提升')
}

函数表达式必须先声明和赋值,否则报错。

a()
var a = function () {console.log('函数提升')
}
//报错:156-函数提升.html:12  Uncaught TypeError: a is not a function

这段代码相当于以下:

var a
console.log(a) //undefined
a() //a is not a function
var a = function () {console.log('函数提升')
}
a()    //函数提升

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat底层原理

Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,用于运行Java Web应用。它是由Apache软件基金会开发和维护的。以下是对Tomcat底层原理的详细解析: 1. 启动流程 Tomcat的启动流程主要分为以下几个…

【计算机毕业设计】013新闻资讯微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Python数据分析案例51——基于K均值的客户聚类分析可视化

案例背景 本次案例带来的是最经典的K均值聚类,对客户进行划分类别的分析,其特点是丰富的可视化过程。这个经典的小案例用来学习或者课程作业在合适不过了。 数据介绍 数据集如下: 客户的编码,性别,年龄,年收入&#…

Vue2-集成路由Vue Router介绍与使用

文章目录 路由(Vue2)1. SPA 与前端路由2. vue-router基本使用创建路由组件声明路由链接和占位标签创建路由模块挂载路由模块 3. vue-router进阶路由重定向嵌套路由动态路由编程式导航导航守卫 本篇小结 更多相关内容可查看 路由(Vue2&#xf…

安全防御----防火墙综合实验2

安全防御----防火墙综合实验2 一、题目 二、实验要求: 1,DMZ区内的服务器,办公区仅能在办公时间内(9:00 - 18:00)可以访问,生产区的设备全天可以访问. 2,生产区不允许访…

雷赛运动控制卡编程(1)

一、运动控制卡选择 电气常用知识-CSDN博客 如下旋转控制卡 DMC3800八轴高性能点位卡 - 东莞市雅恰达机电有限公司 轴少的时候选择脉冲系列卡 轴多的话就选总线型系列控制卡 样品 架构: 二、 添加文件 dll 添加接口文件 【最全,带注释版】雷赛运动…

设置控件背景颜色

在Qt中,设置控件的背景颜色可以通过多种方式实现,但最常用的方法是使用QStyle、QPainter或QPalette。以下是几种设置控件背景颜色的方法: 使用setStyleSheet 对于大多数Qt控件,最简单的方法是使用setStyleSheet方法。这个方法允…

OpenCV中使用Canny算法在图像中查找边缘

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 算法描述 Canny算法是一种广泛应用于计算机视觉和图像处理领域中的边缘检测算法。它由John F. Canny在1986年提出,旨在寻找给定噪声条件下的最佳边…

Python+wxauto=微信自动化?

Pythonwxauto微信自动化? 一、wxauto库简介 1.什么是wxauto库 wxauto是一个基于UIAutomation的开源Python微信自动化库。它旨在帮助用户通过编写Python脚本,轻松实现对微信客户端的自动化操作,从而提升效率并满足个性化需求。这一工具的出现&…

详细分析Sql Server中的declare基本知识

目录 前言1. 基本知识2. Demo3. 拓展Mysql4. 彩蛋 前言 实战探讨主要来源于触发器的Demo 1. 基本知识 DECLARE 语句用于声明变量 声明的变量可以用于存储临时数据,并在 SQL 查询中多次引用 声明变量:使用 DECLARE 语句声明一个或多个变量变量命名&a…

SpringBoot整合JAX-RS接口

目录 二、创建RESTful资源 三、注册JAX-RS资源 四、修改配置等信息 五、启动SpringBoot程序、访问服务 六、遇到的问题 七、与feign进行配合使用 1、接口定义 2、接口实现 3、注册资源 4、调用方web服务实现,跟注入普通服务一样 5、启动两个服务&#xff…

html5——表单

目录 表单基本结构 表单标签 常用表单元素 文本框 密码框 邮箱 单选按钮 复选框 文件域 隐藏域 列表框 多行文本域 lable标签 表单按钮 常用表单属性 只读与禁用 placeholder required pattern autofocus autocomplete 用于指定表单是否有自动完…

NoSQL之redis的配置与优化

一、redis数据库的基础介绍与对比 Redis(RemoteDictionaryServer,远程字典型)是一个开源的、使用C语言编写的NoSQL数据库。Redis 基于内存运行并支持持久化,采用 key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。 1.非关系…

昇思25天打卡营-mindspore-ML- Day23-应用实践-RNN实现情感分类

学习了关于 RNN 算法及其应用。RNN,即循环神经网络,是一种专门用于处理序列数据的神经网络。其基本原理是通过循环连接,让网络能够记住之前的输入信息,并将其用于后续的计算,从而捕捉序列数据中的时间依赖关系。 RNN …

百日筑基第二十天-一头扎进消息队列3-RabbitMQ

百日筑基第二十天-一头扎进消息队列3-RabbitMQ 如上图所示,RabbitMQ 由 Producer、Broker、Consumer 三个大模块组成。生产者将数据发送到 Broker,Broker 接收到数据后,将数据存储到对应的 Queue 里面,消费者从不同的 Queue 消费数…

我的智能辅助大师-办公小浣熊

一、基本介绍 随着2022年ChatGPT为代表的AI工具对互联网领域进行第一次冲击后,作为一名对编程领域涉足不算特别深的一名程序员,对AI大模型的接触也真的不能算少了,这是时代的必然趋势。在此之前也曾接触过很多的AI工具,他们都能在…

【Vscode】显示多个文件 打开多个文件时实现标签栏多行显示

Vscode显示多个文件&VSCode打开多个文件时实现标签栏多行显示 写在最前面一、解决打开文件的时候只显示一个tab的办法解决办法如下: 二、文件标签栏多行显示设置步骤: 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时…

Service Mesh 是一种用于处理服务间通信的基础设施层

Service Mesh 是一种用于处理服务间通信的基础设施层,它通常与微服务架构一起使用,以提供诸如服务发现、负载均衡、熔断、监控、追踪和安全性等功能。Service Mesh 的一个流行实现是 Istio,它基于 Envoy 代理和 Kubernetes。 然而&#xff0…

电脑维护全攻略:让你的“战友”焕发新生

目录 电脑维护全攻略:让你的“战友”焕发新生 引言 方向一:了解你的“战友” 1.1 电脑品牌与型号的选择 1.2 电脑硬件配置的重要性 1.3 电脑软件配置的重要性 方向二:日常维护措施 2.1 定期清理与优化 2.2 保持良好的上网习惯 2.3 …

微服务-注册中心

一. 分布式系统架构与微服务 分布式系统架构和微服务是现代软件开发中常见的两种概念,它们通常结合使用来构建灵活、可扩展和高效的应用程序。 分布式系统架构: 分布式系统架构是指将一个单一的应用程序或服务拆分成多个独立的部分,这些部分…