首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说一说JS变量提升?
[问答题]
说一说JS变量提升?
添加笔记
求解答(0)
邀请回答
收藏(119)
分享
纠错
104个回答
添加回答
54
牛客150990719号
函数和var声明的变量会有变量提升,js在预编译阶段会将函数和var声明的变量提升至最前面先执行,之后再按顺序执行代码块进行赋值,而let和const声明的变量只是创建提升,在预编译中将其创建,形成暂时性死区,不能提前访问和调用变量,只能在赋值之后进行调用和访问
发表于 2022-05-03 14:08:51
回复(0)
10
在度假的小哥哥很亲切
var声明会存在变量提示,函数声明也会提升,let,const不会存在变量提升问题 变量提升,函数声明提示,都是在js编译阶段提升的,将当前变量、函数提升至当前作用域的最顶端 并且由于编译阶段,并没有开始执行代码,所以都会被赋初始值undefined,由于函数不同,函数会在堆内存中开辟一个空间用于来保存函数的执行体,会将当前内存地址赋值给函数变量,所以可以在函数声明上面,来调用该函数 并且let,const声明变量会形成暂时性死区,就是在该作用域当中,无法在变量声明之前去访问,即使全局存在一个同名变量,也无法访问
编辑于 2022-04-21 10:40:12
回复(0)
7
牛客919075960号
变量提升是指,在ES6以前我们在定义变量并且赋值时,JS执行上下文首先会将变量提升到执行环境的顶端进行声明,后面在进行赋值。这导致我们可以未声明变量的情况下提前使用该变量,并且不会报错。在es6出来以后,let 和 const声明的变量必须先声明才能使用,否则会报错,并且let 和 const会有暂时性死区的概念
发表于 2022-08-03 14:18:10
回复(0)
6
牛客782467112号
变量提升是指JS的变量和函数声明会在代码编译期,提升到代码的最前面。变量提升的时候只有声明被提升,var、let和const中只有var存在变量提升。变量提升的结果,可以在变量初始化之前访问该变量,返回的是undefined。使用let和const声明的变量,在初始化之前访问会报错。函数提升优先于变量提升。
发表于 2022-05-20 09:48:30
回复(0)
3
牛客979462847号
函数和var声明的变量会有变量提升,js在预编译阶段会将函数和var声明的变量提升至最前面先执行,之后再按顺序执行代码块进行赋值,而let和const声明的变量只是创建提升,在预编译中将其创建,形成暂时性死区,不能提前访问和调用变量,只能在赋值之后进行调用和访问
发表于 2022-09-11 21:44:32
回复(0)
2
牛客326753562号
变量提升,即在代码中我们可以在变量未定以前进行调用而不报错,但值是 undefined。使用 var 进行定义的变量会发生变量提升,声明式函数也会发生 变量提升的现象。而 let 和 const 定义的变量或者使用const let 定义的函数表达式的方式都不会产生变量提升,再定义前进行调用会发生错误。
编辑于 2023-03-08 10:40:25
回复(1)
1
自信的大白菜
1.变量提升是指JS的变量和函数声明会在代码编译期,提升到代码的最前面(将当前变量、函数提升至当前作用域的最顶端)。
2.变量提升成立的前提是使用Var关键字进行声明的变量,并且变量提升的时候只有声明被提升,赋值并不会被提升,同时函数的声明提升会比变量的提升优先。
3.let,const不会存在变量提升问题,只是创建提升,在预编译中将其创建,形成暂时性死区,不能提前访问和调用变量,只能在赋值之后进行调用和访问
4.暂时性死区:暂时性死区是在变量未定义之前,就访问该变量所造成的的问题
发表于 2023-01-19 01:30:36
回复(0)
1
喜欢修勾的华夫饼在看机会
变量提升是指JS的变量和函数声明会在代码编译期,提升到代码的最前面。变量提升成立的前提是使用var关键字进行声明的变量,并且变量提升的时候只有声明被提升,赋值并不会被提升,同时函数的声明提升会比变量的提升优先。变量提升的结果是可以在变量初始化之前访问该变量,返回的是undefined。在函数声明前可以调用该函数。
发表于 2022-07-16 10:49:52
回复(0)
1
p虫++
var声明会存在变量提示,函数声明也会提升,let,const不会存在变量提升问题 变量提升,函数声明提示,都是在js编译阶段提升的,将当前变量、函数提升至当前作用域的最顶端 并且由于编译阶段,并没有开始执行代码,所以都会被赋初始值undefined,由于函数不同,函数会在堆内存中开辟一个空间用于来保存函数的执行体,会将当前内存地址赋值给函数变量,所以可以在函数声明上面,来调用该函数 并且let,const声明变量会形成暂时性死区,就是在该作用域当中,无法在变量声明之前去访问,即使全局存在一个同名变量,也无法访问
发表于 2022-07-13 11:33:36
回复(0)
1
牛客663468082号
函数和var声明的变量会有变量提升,js在预编译阶段会将函数和var声明的变量提升至最前面先执行,之后再按顺序执行代码块进行赋值,而let和const声明的变量只是创建提升,在预编译中将其创建,形成暂时性死区,不能提前访问和调用变量,只能在赋值之后进行调用和访问
发表于 2022-05-17 21:48:28
回复(0)
1
k-11
var声明的变量存在变量提升、let与const声明的变量不存在提升,但是存在暂时性死区的问题。 变量提升:在js编译阶段将该被声明的变量提升至代码的最前面。同时声明优先级来说,函数提升优先级大于变量提升,变量提升会覆盖掉函数提升 暂时性死区:暂时性死区是在变量未定义之前,就访问该变量所造成的的问题
发表于 2022-05-13 17:29:50
回复(0)
0
间野千昭
变量提升是指变量和函数被提升到当前作用域的顶部。譬如var会被提升,而let const会进入暂时性死区。var提前访问输出的是undefined,而const let会报错。
发表于 2025-05-12 04:06:18
回复(0)
0
前端中白
变量提升指的是 js在代码编译期会将变量和函数声明提升到代码最前面,具体效果为可在函数声明之前调用此函数,在变量声明前调用变量,此时变量的值为undefined;使用var关键字定义变量会造成变量提升;es6新增的let和const定义的变量和常量则不存在变量提升的问题,即在let或const关键字声明的变量前调用会报错。
发表于 2025-04-17 11:17:11
回复(0)
0
狸漠
JS变量提升指的是JS中变量和函数的声明会在代码编译时提到代码的最前面,所以在声明代码之前也可以使用他们。var声明会被提升,但是赋值操作不会提升;const和let虽然也会被提升,但是会进入暂时性死区,无法访问而报错;函数声明的优先级更高,可以在声明前调用该函数。
发表于 2025-04-13 17:02:08
回复(0)
0
想去毕业旅行的废话选手被加薪
变量提升是指JS的变量和函数声明在代码编译期,被提升到代码的最前面,变量提升成立的前提是使用var关键字进行声明的变量,并且变量提升的时候只有声明会被提升,赋值并不会被提升,同时函数声明的提升会比变量的提升优先,变量提升的结果是可以在变量初始化之前访问该变量,返回的是undefined,在函数声明前可以调用该函数。
发表于 2025-03-22 11:02:49
回复(0)
0
倔强的小狮子
函数function和var有变量提升,let和const没有变量提升 变量提升就是在代码编译阶段,就将变量和函数提升到代码的最前面去声明
发表于 2025-03-14 17:49:18
回复(0)
0
莫南枝
var和函数都有变量提升 var: 把var声明的变量全部提升到当前作用域的前面,只提升变量不提升赋值; 函数提升:会把所有函数声明提升到当前作用域的最前面,只提升函数声明,不提升函数调用
发表于 2025-03-01 16:44:45
回复(0)
0
牛牛爱编程
JS的变量提升是指变量和函数的声明会在代码编译期,提升到代码最前面。 使用var声明变量,会形成变量提升,并且只有声明被提升,赋值没有。而函数声明提升比变量要优先。 变量提升的结果是,如果在提升之前访问变量会返回undefined。可以在函数声明之前访问函数。 let和const声明的变量,会在提升时形成暂时性死区,所以在初始化之前访问let和const变量会报错
发表于 2025-02-26 14:45:42
回复(0)
0
在干饭的懒羊羊很沉稳
var和函数在没定义之前使用合法,将var,和函数定义在运行过程中变量提升
发表于 2024-11-02 16:40:50
回复(0)
0
贪睡的鲸鱼准备进厂
var变量声明提升,函数声明提升,le和const声明不提升,声明前就使用let和const声明的变量会报错。变量提升就是在代码编译期将提升代码提到代码的最前面,可以在编译初期就使用该代码,但是提升只提升变量的声明,不提升变量的赋值,且函数比var更先一步提升
发表于 2024-10-28 19:39:57
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Javascript
上传者:
real1993
难度:
104条回答
119收藏
1624浏览
热门推荐
相关试题
ajax原理、如何实现刷新数据及优点?
迅雷
Javascript
评论
(7)
3.下列关于表中西部省市区2006...
资料分析
言语理解与表达
资料分析
评论
(1)
4.该校1997年男女教师的比例为...
资料分析
言语理解与表达
资料分析
评论
(1)
计算机在工作过程中,若突然停电,(...
计算机常识
普及
C++
Pascal
选择题
评论
(1)
来自
NOIP2008初赛普及组
Mysql中表student_in...
数据库
SQL
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题