javascript局部变量和全局变量

javascript有两种变量:局部变量和全局变量。局部变量是指只能在变量声明的函数内部调用。全局变量时整个代码中都可以调用的变量(window对象的变量)。

局部变量包括函数内声明的变量和函数的形式参数。

javascript局部变量和全局变量

全局变量num预处理时,只声明未定义,所以第一次输出undefined;函数fn内部num被声明,所以其为局部变量,预处理时函数fn既声明又定义了,并且函数fn有俩个形式参数n1和n2;函数fn执行时会开辟新的作用域,在新的作用域下,此时的局部变量num预处理时只声明,所以输出undefined;n1被赋值100,n2被赋值200,局部变量num为300,所以第三次输出为300;第四次输出为全局变量num,无法访问函数内的局部变量num,所以结果为10。

函数形成了一个私有的作用域,保护了内部的局部变量不被外界干扰。局部变量和全局变量相互独立、互不影响。

javascript局部变量和全局变量

此时函数fn内的num未被声明,按照javascript作用域链的原理,当一个变量在当前作用域下找不到该变量的定义,那么javascript引擎就会沿着作用域链往上找直到在全局作用域里查找,所以函数fn内的num属于全局变量。

关键词:作用域 变量 作用域链 闭包

本文为头条号作者发布,不代表今日头条立场。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值