浅谈源生js的变量作用域

一个变量作用域是源代码中定义这个变量的区域;

在ES5当中,声明变量一般用的是var,var有声明变量提升

在源生js里,没有块级作用域,它的作用域分为两种情况,一种是全局作用域,另一种是函数作用域;

全局作用域

在ES5当中,全局变量拥有全局的作用域,在js内的任何地方都是有定义的,简单的来说,全局对象之内,函数之外定义的变量属于全局变量,如若全局作用域之内声明的变量过多,则会影响代码运行的速度,使页面加载变得过慢,浪费性能

在全局作用域当中,声明变量可以不用var来声明

函数级作用域

函数作用域是指在函数内声明的所有变量在函数体内始终是清晰可见的,这意味着变量在声明之前甚至已经可用,这个特性被称为“声明提前”

在函数内声明的变量,只在函数体内有定义,属于局部变量,作用域是有局限性的,在函数体内,局部变量优先于全局变量,如果函数内部变量和全局变量重名,则函数内部的变量会遮盖全局的变量

在函数内声明变量,不用var来声明时,相当于隐形的创建了一个新的全局变量










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值