js全局变量的理解

这里写图片描述

一、局部变量和全局变量重名会覆盖全局变量
二、提到全局变量与局部变量不得不说明的一个知识点就是变量提升(这是一个坑)。‘与C/C++逐行执行代码不同,JS引擎的工作方式是,先获取所有被声明的变量再逐一执行,所有变量的声明语句都会被提升到当前代码块的头部’。注:代码块指的是function的一个{},通常的if、while、for的{}中变量不会提升。

var a = 1;  
function test1() {  
    alert(a);  
    var a = 2;  
    alert(a);  
}  
test1();   
alert(a);//undefined  2  1
var a = 1;  
function test1() {  
   var a;//局部变量与全局变量重名时会覆盖全局变量,此时的a只有声明却未定义  
    alert(a);//所以执行alert值为undefined  
    a = 2;  
    alert(a);  
}  
test1();  
alert(a);//undefined  2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值