js里的局部变量与全局变量以及变量提升(var)

本文深入探讨JavaScript中全局变量与局部变量的概念,解析变量提升现象,以及局部变量如何覆盖全局变量。同时,阐述了使用var与let声明变量的区别,包括它们在window对象中的表现,以及如何灵活使用window属性进行变量输出。

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

全局变量:在全局范围内定义的变量,或者在函数里不适用var定义的变量。

局部变量:在函数里用var定义的变量

变量提升:变量声明总是会被解释器“提升”到函数体的顶部(顶部的提升变量不会给他赋值),也就是提前装载。

 

局部变量会覆盖全局变量

html的事件处理也是可以用js的全局变量

 

js只认函数体的花括号,不认其他如if的花括号,所以只有在函数体里的var才是局部变量,也就是说,局部变量只要不出函数体花括号都可以用。所以var没有块范围,但let有

 

如果使用var定义变量,程序会强制定义一个新变量

如果没有使用var的话,如果全面有同名的全局变量,就是给前面的赋值,没有就定义一个新变量

 

var定义的变量默认会把它作为window里的一个属性(全局的函数,全局的变量都是属于window的属性的)可以window.变量输出

let不会把它作为window的属性

 

var可以使用window属性输出,更加灵活,如想要输出index+i时,就可以用window["index"+i]来输出

window.index和window["index"]是一样的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值