JavaScript之变量提升

博客主要介绍了JavaScript的变量提升特性,在JavaScript里函数和变量声明会被提升到函数最顶部,变量可先使用后声明,但初始化不会提升。同时给出避免变量提升的方法,如在作用域开始前声明变量,使用ES6的let和const命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript 变量提升

在JavaScritp中,函数和变量的声明都将被提升到函数的最顶部。
在JavaScript中,变量可以在使用后声明,也就是变量可以先使用在声明。

console.log(x);// undefined
var x;
console.log(x);// undefined

结果显示:无论var 变量声明处于顶部或尾部,它都会被提升到最顶部。

x=5; // ReferenceError:x is not defined
console.log(x);

因未声明变量x,故变量赋值报错。

x=5; 
console.log(x);// 5
var x;

而在尾部声明了变量x后,却可在顶部给变量x赋值。

JavaScript 初始化不会提升

JavaScript 只有声明的变量会提升,初始化的不会提升。

console.log(x);// undefined
var x=5;
console.log(x);// 5

因JavaScript的变量提升,故第一个打印显示为undefined,接下来对变量的赋值/初始化并没有提升,因此第二个打印显示为5

避免变量提升

  • 在作用域开始前声明变量:易于理解
  • ES6的let和const命令不会有变量提升
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值