作用域和变量类型

变量作用的范围称为作用域,作用是提高程序的可靠性,减少命名冲突

全局作用域

  • 直接编写在script标签中的js代码
  • 单独一个js文件中
  • 有一个全局对象window(由浏览器创建),可直接使用
  • 创建的变量,函数,都会作为window对象的属性和方法保存

局部作用域(函数作用域)

  • 函数内部称为局部作用域
  • 调用函数时创建局部作用域,函数执行完毕,函数作用域就立即销毁
  • 每调用一次就会创建一个新的局部作用域,他们之间相互独立

块级作用域

  • 用大括号({})包含的就是块级作用域
  • es6作用域,只适用于const,let:

根据变量的作用域不同,变量可以分为全局变量和局部变量

全局变量

  • 全局作用域下声明的变量叫全局变量

  • 全局变量创建方式

    • 全局作用域下var声明的变量
    • 函数内部,没有使用var关键字声明,直接赋值的变量

局部变量

  • 局部作用域下声明的变量叫局部变量
  • 函数内部var声明的变量
  • 函数的形参

自由变量

  • 当前作用域中没有声明,但被使用了的变量

作用域链

当一个变量为自由变量时,它会向上级作用域一层一层查找,直到找到为止,最高找到全局作用域,就形成了作用域链。

变量提升

  • var声明的变量,function声明的函数会进行变量提升
  • let,const声明的不会进行变量提升
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值