javascript知识点-作用域

简述

理解作用域,重要的是理解 js 解释代码的规范,js 在解释代码的时候会执行这2个步骤:

  1. 预解释
    js 会对 var function 参数做一个预解释,存储起来
  2. 逐行解释
    完成预解释后,会逐行解释代码
例子1
console.log(a)
var a = 1

执行上面的代码,输出的是:

undefined

跟着上面的步骤走就是:
1.预解释:
会去寻找有 var 、function、参数,那么上面的例子会找到 一个 var a 将它存为 undifined
2.逐行解释:
console.log(a)就会输出一个 undifined

例子 2
console.log(a)
var a = 1;
function fn1(){
	console.log(a)
	var a = 2
};
fn1();
var a = 3;
function fn1(){
	a = 4;
	console.log(a)
}
fn1()
console.log(a)

执行上面的代码,输出的是:

undefined
4
4
4

步骤分析

  1. 预解释
var a  =  undefined ;
fn1 = function fn1(){
	console.log(a)
	var a = 2
};
var  a =  undefined;
fn1 = function fn1(){
	a = 4;
	console.log(a)
}

经过预解释后 a = undefined; fn1 = function fn1(){ a = 4; console.log(a) }
2. 逐行解释

console.log(a)   =>   //输出a  undefined

var a = 1;  =>  // a 赋值为 1

function fn1(){
	console.log(a)   
	var a = 2
};

fn1();   // 调用 fn1  经预解释 fn1 = function fn1(){
											a = 4;
											console.log(a)
											}
		//所以这里赋值 a = 4; 输出a 为 4
		
var a = 3;  //又重新赋值 a = 3;
function fn1(){
	a = 4;	// 又重新赋值 a = 4;
	console.log(a)  //输出 a 为 4
}
fn1()
console.log(a) //输出 a 为 4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值